Witam
Jako nowy użytkownik witam wszystkich
forumowiczów
Proszę o pomoc w napisaniu szkicu.
Np na 7 lub na innym pinie arduino pro mini dostaje impuls 5v lub zwarcie do masy, wtedy ziwera przekaźnik na 15 razy co pół skundy (nie wiem czy dobrze to opisałem
)
Pozdrawiam i z góry dziękuję.
PS. Załączam posiadane elementy
[
attachment=593]
A czym chcesz wgrać szkic do tego PRO? Jak chcesz połączyć pro z tym modułem? Czym zasilisz cały układ? Jak chcesz wywołać wykonanie szkicu? Zacznij od zbudowania układu. masz masę przykładów w IDE i coś możesz przerobić na swoje potrzeby.
Szkic wgram za pomocą uno, układ chcę zasilać z power banku, o podłączeniu to myślałem w ten sposób jeżeli na pinie 7 pojawi się 5v to np pin 5 poda na przekaźnik 15 x 5v w odstępach 0,5s
Ewentualnie może podpowiedź który z przykładów jest najbardziej zbliżony do tego co chcę osiągnąć??
Pokusiłem się i napisałem sobie program w stylu
"Arduinowców", czyli wziąłem przykład "blink without delay" i przerobiłem go pod własne wymagania.
Dodałem warunek włączenia sekwencji załączania przekaźnika, oraz samą sekwencję w pętli nieskończonej z warunkowym przerwaniem po odliczeniu 15-stu załączeń.
Czyli wniosek jest taki:
Skoro mi się udało przerobić kod z przykładu, to każdemu się to powinno udać.
Kod:
const int Przekaznik_Pin = 5;
// Variables will change:
int ledState = LOW; // ledState used to set the LED
// Generally, you should use "unsigned long" for variables that hold time
// The value will quickly become too large for an int to store
unsigned long previousMillis = 0; // will store last time LED was updated
// constants won't change:
const long interval = 500; // interval at which to blink (milliseconds)
void setup() {
// set the digital pin as output:
pinMode(Przekaznik_Pin, OUTPUT);
pinMode(7,INPUT);
}
void loop() {
if(digitalRead(7)==HIGH) {
int licznik;
// here is where you'd put code that needs to be running all the time.
// check to see if it's time to blink the LED; that is, if the difference
// between the current time and last time you blinked the LED is bigger than
// the interval at which you want to blink the LED.
while(1){
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
// save the last time you blinked the LED
previousMillis = currentMillis;
// if the LED is off turn it on and vice-versa:
if (ledState == LOW) {
ledState = HIGH;
} else {
ledState = LOW;
}
// set the LED with the ledState of the variable:
digitalWrite(Przekaznik_Pin, ledState);
licznik++;
}
if(licznik==30) break;
}
}
}
Problem został rozwiązany można zamykać.
Dziękuję za pomoc
Myślę ze sam bym nie dał rady
Jeszcze raz wielkie dzięki
Witam
Coś jest jednak nie tak z tym kodem
podpinając jakikolwiek kabelek pod pin 7 z zasilaniem 5v czy też bez zasilania arduino zaczyna realizować kod sprawdzałem na arduino mini i uno i to samo ...
Bo lepiej jest podciągnąć pin 7 rezystorem do VCC, a sterować zwarciem do masy.
Czyli w setupie pinMode(7,INPUT_PULLUP);
a sprawdzać if(digitalRead(7)==LOW)
A jaki rezystor zastosować
10k się nada ??
(04-06-2018, 15:24)kanos1 napisał(a): [ -> ]A jaki rezystor zastosować
10k się nada ??
Wystarczy rezystor wewnętrzny atmegi.
pinMode(7,INPUT_PULLUP);
Ok teraz już działa jak powinno dzięki
Wysłane z mojego MI 6 przy użyciu Tapatalka