Skocz do zawartości

Zakurek

Użytkownicy
  • Zawartość

    8
  • Rejestracja

  • Ostatnio

Reputacja

0 Neutralna

O Zakurek

  • Ranga
    2/10

Informacje

  • Płeć
    Mężczyzna

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

  1. Treker, błędy są różne, może zacznę od tego, że działam na programie z systemu alarmowego(z kursu) dodałem już dźwięki i teraz chciałem dodać przerwanie, ale gdy dodam te linijkę kodu program zaczyna się dziwnie zachowywać tzn. czasami podczas uzbrajania nie wszystkie diody świecą się jak powinny, czasem nie ma dźwięku, alarm od razu po uzbrojeniu wyje, a czasem wyje tylko przez krotki czas i się zawiesza (diody i dźwięk), parę razy się zdarzyło że podczas zbrojenia alarmu się sam rozbroił. Chciałem mieć podłączony zwykły przycisk z kursu 1, ale próbując dowiedzieć się gdzie jest błąd okazało się, że samo dodanie kodu powoduje błędy w programie nawet gdy pin jest nie podłączony.
  2. Mam problem z przerwaniem. W momencie gdy dodaje taki element kodu w całym programie występują błędy attachInterrupt(digitalPinToInterrupt(2), wylA, RISING); , a wylA to void wylA() { stanAlarmu = 1; wylaczDiody(); noTone(BUZZER); } . Problem znika po usunięciu przerwania z kodu. Co robię źle?
  3. Takie pytanko czy w zestawie do cz.2 kursu powinny być 2 diody LED RGB? Jak dodać bibliotekę, ja nie mam takiej opcji jak w u ciebie
  4. Treker, problem rozwiązany zmieniłem Serial.println("cm "+dystans); na Serial.print("cm "); Serial.println(dystans); i wszystko jest poprawnie wyświetlane, ale nadal nie rozumiem dlaczego przestało działać Serial.println("cm "+dystans); masz jakieś pomysły co mogło się zepsuć?
  5. Treker, sprawdziłem prosty program, działa bez żadnych problemów, a w tamtym programie tylko część kodu nie działa albo tylko część działa. Czy ma znaczenie jaki jest programator wybrany w programie? Może go przez przypadek zmieniłem. W tym momencie jest AVR ISP. void setup(){ Serial.begin(9600); //Ustawienie prędkości transmisji Serial.println("Witaj na Forbocie!"); //Jednorazowe wysłanie tekstu } void loop() { delay(5000); Serial.println("Minelo 5 sekund!"); //Wysyłanie w pętli }
  6. Mam problem z (chyba) samą aplikacją Arduino piszę chyba ponieważ podczas sprawdzania programu przez przypadek kliknąłem coś (chyba) w narzędziach i teraz gdy gdy dostaję odp od Arduino pokazują mi się kwadraty itp. jak na zdj. co zrobić? Próbowałem reinstalować aplikacje wraz ze sterownikami USB, ale to nic nie daje. Co dziwne dzieje się tak tylko w jednej części kodu tej przy której pracowałem. #define Fan 3 #define trigPin 12 #define echoPin 11 String inf; bool L1 = false; int predkosc; int predkosci; int infx; bool wyb; void setup() { pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(Fan, OUTPUT); Serial.begin(9600); //Baudrate: 9600 Serial.println("Program zresetowany"); } void loop() { if (Serial.available() > 0) { //Czy Arduino odebrano dane inf = Serial.readStringUntil('\n'); infx = inf.toInt(); } switch (infx) { case 1: //PrÄ™dkość silnika pierwszego wyb = false; S1(); infx = 0; break; case 2: // lampka L(); break; case 3: //proporcjonalnie odlegos do predkosci wiatraczka if (wyb == true) { predkosc = ODL(); predkosci = map(predkosc, 0, 250, 100, 255); analogWrite(3, predkosci); //Serial.println("psl " + predkosci); wyb = true; delay(1000); } else if (wyb == false) { wyb = true; } break; default: infx = 0; } if (wyb == true) { infx = 3; } } void S1() { //Sterowanie wiatraczkiem String Obr; String Obr2; int Obr1; int x = 0; //Serial.println("S1"); testy while (x != 1) { //Serial.println("petla"); testowanie if (Serial.available() > 0) { Obr = Serial.readStringUntil('\n'); x = 1; } } if (Obr != Obr2) { Serial.println("ps1 " + Obr); } Obr1 = Obr.toInt(); //Serial.println(Obr1); testowanie analogWrite(3, Obr1); Obr = Obr2; x = 0; } void L() { // funkcja lamki on/off if (L1 == false) { digitalWrite(8, HIGH); Serial.println("L1 ON"); L1 = true; } else if (L1 == true) { digitalWrite(8, LOW); Serial.println("L1 OFF"); L1 = false; } } int ODL() { //odl do szybkosci proprocjonalnie int a = 0; long czas, dystans; digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); czas = pulseIn(echoPin, HIGH); dystans = czas / 58; if (dystans <= 250) { a = dystans; Serial.println("cm "+dystans); return a; } } Problem występuje w case 3. Wiem, że można lepiej to napisać ale to jeden z pierwszych programów jaki piszę.
  7. po long czas, dystans brakuje ; a w ostatnim kodzie brakuje pinMode(3, OUTPUT);
  8. Świetny kurs, czekam na kolejne części, które mam nadzieje się pojawią!
×
×
  • Utwórz nowe...