hmm sam nie wiem:) licznik impulsów - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica) +--- Wątek: hmm sam nie wiem:) licznik impulsów (/watek-hmm-sam-nie-wiem-licznik-impuls%C3%B3w) Strony:
1
2
|
RE: hmm sam nie wiem:) licznik impulsów - tooomek89@gmail.com - 07-01-2018 long cm; long pm,pm_1; long licznik; byte start; int stat,start_1; byte czas_oczekiwania = 5; void setup() { Serial.begin(9600); pinMode(5, INPUT_PULLUP); pinMode (12, OUTPUT); } void loop() { cm = millis()/1000; if ( digitalRead(5) == HIGH )stat = 0; if ( digitalRead(5) == LOW and stat == 0 ) {start ++;stat = 1;pm = cm;} if ( start > 0 ){ if ((cm - pm) == 1){licznik ++;pm = cm;}} if ( licznik > czas_oczekiwania and digitalRead(12) == 0 ) {licznik = 0;start = 0;} if ( start >= 3 ) {digitalWrite(12,HIGH);} if ( digitalRead(12) == HIGH ){ licznik = 0;start = 0; if ((cm - pm_1) > 0){start_1 ++;pm_1 = cm;} if ( start_1 > 10 ){digitalWrite(12,LOW);start_1 = 0;}} Serial.print(2000); Serial.print(" / "); Serial.print(start); Serial.print(" / "); Serial.println(start_1); } kod w takiej postaci działa jak trzeba teraz próbuje zdublować kod dodając dodatkowy pin na wejsciu i wyjściu aby w ten sam sposób sterować nastepnym przekaźnikiem i ciagle jakies blędy :p RE: hmm sam nie wiem:) licznik impulsów - tooomek89@gmail.com - 09-01-2018 Coś powoli sie udaje long cm; long pm,pm_1; long licznik; byte start; int stat,start_1; int stat2,start_2; byte czas_oczekiwania = 5; void setup() { Serial.begin(9600); pinMode(5, INPUT_PULLUP); pinMode (12, OUTPUT); pinMode(4, INPUT_PULLUP); pinMode (11, OUTPUT); } void loop() { cm = millis()/1000; if ( digitalRead(5) == HIGH )stat = 0; if ( digitalRead(4) == HIGH )stat2 = 0; if ( digitalRead(5) == LOW and stat == 0 ) {start ++;stat = 1;pm = cm;} if ( digitalRead(4) == LOW and stat2 == 0 ) {start_2 ++;stat2 = 1;pm = cm;} if ( start > 0 ){ if ((cm - pm) == 1){licznik ++;pm = cm;}} if ( start_2 > 0 ){ if ((cm - pm) == 1){licznik ++;pm = cm;}} if ( licznik > czas_oczekiwania and digitalRead(12) == 0 ) {licznik = 0;start = 0;} if ( licznik > czas_oczekiwania and digitalRead(11) == 0 ) {licznik = 0;start_2 = 0;} if ( start >= 3 ) {digitalWrite(12,HIGH);} if ( start_2 >= 3 ) {digitalWrite(11,HIGH);} if ( digitalRead(12) == HIGH ){ licznik = 0;start = 0; if ((cm - pm_1) > 0){start_1 ++;pm_1 = cm;} if ( start_1 > 10 ){digitalWrite(12,LOW);start_1 = 0;}} if ( digitalRead(11) == HIGH ){{ licznik = 0;start_2 = 0; if ((cm - pm_1) > 0){start_2 ++;pm_1 = cm;} if ( start_2 > 10 ){digitalWrite(11,LOW);start_2 = 0;}}} Serial.print(2000); Serial.print(" / "); Serial.print(start); Serial.print(" / "); Serial.println(start_1); } pin 12 działa jak trzeba, Pin 11 czyli dodany przeze mnie: świeci przez ok 6 sekund, jeżeli świeci się dioda z pinu 12 to mogę również włączyć pin 11 ( odwrotnie juz tak nie jest), jeśli swieci zielona i wcisnę kolejne 3 razy przycisk za nią odpowiedzialny to gaśnie. W serial monitor nic sie nie zmienia jeśli steruję pinem 11 |