Skocz do zawartości

wojt3k_h

Użytkownicy
  • Zawartość

    9
  • Rejestracja

  • Ostatnio

Reputacja

1 Neutralna

O wojt3k_h

  • Ranga
    2/10
  1. po wstawieniu kodu z while pompka załącza się sama z przerwami
  2. przepraszam dawno mnie nie było bo późno wracałem, dzięki dla niektórych to chwilka napisać taki kod a mógł by ktoś wskazać co dopisać żeby odblokowywało kod po zabraniu dłoni
  3. witam mam program działa tylko jest problem bo dysza rozpylająca jest ok 2 cm od czujnika" HC-SR04" wszystko skierowane pionowo w dół. Podsuwam dłoń czujnik czyta że coś się znajduje w odległości mniejszej niż zadana, następuje załączenie pompy tylko ze jak jest wystrzał cieczy to tak jakby sczytywał ze dalej jest dłoń na czujniku i tak zaczyna się zapętlać i tak strzela tryska co jest w programie nie tak prosił bym o pomoc #define potentiometer A0 #define echopin 11 // echo pin #define trigpin 12 // Trigger pin int read_pot =0; unsigned long set_time =0; unsigned long rememTime; float distance_cm; unsigned long ultra_time; int set_cm = 20; int motor = 2; // wyjście silnik int flag=0; void setup(){ Serial.begin(9600); pinMode(potentiometer, INPUT); pinMode (trigpin, OUTPUT); pinMode (echopin, INPUT); pinMode(motor, OUTPUT); delay(200); } void loop(){ ultrasonicRead(); read_pot = analogRead(potentiometer); set_time = map(read_pot, 0, 1023, 1UL, 50UL); Serial.print("Distance :"); Serial.println(distance_cm); Serial.print("Time:"); Serial.println(set_time); if(distance_cm<set_cm && flag==0) { digitalWrite(motor,HIGH); Serial.println("Motor On"); rememTime = millis(); flag=1; } if(distance_cm > set_cm) { flag=0; } if((millis()- rememTime) > set_time) { digitalWrite(motor,LOW); Serial.println("Motor Off"); } delay(100); } void ultrasonicRead() { digitalWrite(trigpin, LOW); delayMicroseconds(2); digitalWrite(trigpin, HIGH); delayMicroseconds(10); ultra_time = pulseIn (echopin, HIGH); distance_cm = ultra_time / 29 / 2; }
  4. podłaczone mam jjak na schemacie w celu czasem niechcianego załączenia narazie diodą sprawdzam później będzie działało przez tranzystor Odpowiedz nie była poprawna bo o co innego pytałem. Dziekuje
  5. Doceniam ale dziękuje nie chcesz pomóc nie pisz inaczej się pisało w tych programach co miałem 12 lat temu inaczej w tym. a nad funkcja micros tez sie zastanawiam czy nie edytować bo z czasem che dopiac modul gsm
  6. co może być przyczyną ze jeżeli zmienię licznik1/2" //Jeżeli 1 przycisk będzie przytrzymany ustalony czas if(licznik1 >= czas) " miejscami to wykonuje mi tylko jedna operacje obojętnie krtóry przycisk przycisnę tak jak by tylko wykonywało dwoma przyciskami tylko polecenie funkcję licznika 1 licznika 2 nie wykonuje //Stałe z numerami pinów #define wyjscie 12 #define przycisk1 6 #define przycisk2 7 #define czas 3000 //Czas do aktywacji #define przerwa 250 //Zmienna na zliczanie "czasu" kliknięcia guzików int licznik1 = 0; int licznik2 = 0; //Funkcja ustawiająca, która konfiguruje ustawienia pinów void setup() { pinMode(wyjscie, OUTPUT); pinMode(przycisk1, INPUT); pinMode(przycisk2, INPUT); } //Pętla główna programu void loop() { //Sprawdzanie przyciśniętego przycisku 1 lub 2 i zliczanie czasu //Dodatkowo zeruję drugi licznik żeby nie wystąpił przypadek, że odpalą się oba tryby if(digitalRead(przycisk1) == HIGH) { licznik1 += przerwa; } else if(digitalRead(przycisk2) == HIGH) { licznik2 += przerwa; } else { licznik1=0; licznik2=0; } //Jeżeli 1 przycisk będzie przytrzymany ustalony czas if(licznik1 > czas) { //Wykonaj zadaną sekwencję podnieś, opuść, podnieś... digitalWrite(wyjscie, HIGH); delay(5000); digitalWrite(wyjscie, LOW); delay(1000); digitalWrite(wyjscie, HIGH); delay(5000); digitalWrite(wyjscie, LOW); delay(1000); digitalWrite(wyjscie, HIGH); delay(5000); digitalWrite(wyjscie, LOW); licznik1=0; licznik2=0; } //To samo z przyciskiem 2 else if (licznik2 > czas){ digitalWrite(wyjscie, HIGH); delay(2000); digitalWrite(wyjscie, LOW); licznik2==0; licznik1==0; } else{ digitalWrite(wyjscie, LOW);} //Na samym końcu opuść zasilanie na pinie delay(250); }
  7. Na jaką funkcje trzeba zmienić bo po zakończeniu 3 cykli robi przerwę jakby na te 250 milisekund i już miga w nieskończoność czasy długości świecenia skróciłem w celu testów //Stałe z numerami pinów #define wyjscie 13 #define przycisk1 6 #define przycisk2 7 #define czas 3000 //Czas do aktywacji //Zmienna na zliczanie "czasu" kliknięcia guzików int licznik1 = 0; int licznik2 = 0; //Funkcja ustawiająca, która konfiguruje ustawienia pinów void setup() { pinMode(wyjscie, OUTPUT); pinMode(przycisk1, INPUT); pinMode(przycisk2, INPUT); } //Pętla główna programu void loop() { //Sprawdzanie przyciśniętego przycisku 1 lub 2 i zliczanie czasu //Dodatkowo zeruję drugi licznik żeby nie wystąpił przypadek, że odpalą się oba tryby if(digitalRead(przycisk1) == HIGH) { licznik1 += 250; licznik2 = 0; } else if(digitalRead(przycisk2) == HIGH) { licznik2 += 250; licznik1 = 0; } //Jeżeli 1 przycisk będzie przytrzymany ustalony czas if(licznik1 >= czas) { //Wykonaj zadaną sekwencję podnieś, opuść, podnieś... digitalWrite(wyjscie, HIGH); delay(5000); digitalWrite(wyjscie, LOW); delay(1000); digitalWrite(wyjscie, HIGH); delay(5000); digitalWrite(wyjscie, LOW); delay(1000); digitalWrite(wyjscie, HIGH); delay(5000); digitalWrite(wyjscie, LOW); } //To samo z przyciskiem 2 else if(licznik2 >= czas) { digitalWrite(wyjscie, HIGH); delay(5000); digitalWrite(wyjscie, LOW); } //Na samym końcu opuść zasilanie na pinie digitalWrite(wyjscie, LOW); delay(250); }
  8. witam Wojtek 32lata Wyuczony zawód elektryk a elektronika, informatyk,motoryzacja to taka mała pasja, przygodę z programowaniem zaczęła się w szkole ale starsze programy firstbasic, qbasic, visualbasic głownie programy pod dosa simens logo,pisanie programów pod porty rs232, lpt, ale niestety nie miałem avr a skoda bo widzę ze można ciekawie zaprogramować i gabarytowo małe. Zainteresowania to czasem się naprawiło coś z elektroniki, teraz chciał bym stworzyć na arduino system sterowania syreny w straży OSP powiadamiania do której należę, z czasem coś udoskonalić(zautomatyzować) w garażu i więcej
  9. Witam kiedyś z 12 lat temu się pisało ale w innych środowiskach, borykam się z problemem chodzi mi o mały programik w sumie dla kogoś kto zna dobrze arduino to proste na pewno. założenie ma być takie : Posiadam dwa przyciski pod piny to obojętne jaki numer pinu ale jedno wyjście z tym że żeby załączyć program trzeba przycisnąć przycisk trzymając go np 3sekundy do czego dwa przyciski już pisze jak jedne przycisnę to program podaje na wyjscie stan 45 s wysoki 10s niski 45s wysoki 10s niski 45s wysoki i przechodzi w stan pętli do kolejnego przyciśnięcia przycisku natomiast jak drugi przycisnę to 45s wysoki i dalej przechodzi w stan petli to jak napisać wiem odnośnie przyciśnięcia przycisku i tylko obsłużenie jednej składnie wiem ale czy da rade jeszcze to przytrzymanie przycisku i druga składnie dodać? Dzieki
×
×
  • Utwórz nowe...