Cahir Październik 4, 2015 Udostępnij Październik 4, 2015 Po przeczytaniu jednej z części kursu o tworzeniu własnych funkcji postanowiłem zastosować zdobytą wiedzę aby skomplikować zadanie domowe z odcinka o ADC. Problem polega na tym iż po wpisaniu odpowiedniej liczby w monitor portu szeregowego program i tak wysyła wiadomość o błędzie , zapala się żółta dioda i zostaje odjęte jedno życie PS. Wszystkie części kursu są naprawdę świetnie napisane
Treker (Damian Szymański) Październik 4, 2015 Udostępnij Październik 4, 2015 Cahir, na pierwszy rzut oka mam wątpliwości, co do tego: int(wpisana) = wpisana2; Sprawdzałeś, czy takie rzutowanie działa? Opisałem inny sposób na taką operację w tej części: Kurs Arduino – #9 – Czujnik odległości HC-SR04, funkcje
Chumanista Październik 4, 2015 Udostępnij Październik 4, 2015 To nie ma żadnych szans działać. Jak już to wpisana2 = (int)wpisana; Ale to też nie zadziała w C. http://stackoverflow.com/questions/7663709/convert-string-to-int-c
Cahir Październik 5, 2015 Udostępnij Październik 5, 2015 Dziękuje za tak szybką diagnozę problemu Teraz rzutowanie działa tak jak powinno Mam jeszcze jedno pytanie jak działa funkcja Serial.parseInt() ?
Treker (Damian Szymański) Październik 5, 2015 Udostępnij Październik 5, 2015 W skrócie wyszukuje ona pierwszej liczby, która wstawiona została w przesłany ciąg znaków. Najlepiej opisuje to samo Arduino: https://www.arduino.cc/en/Reference/ParseInt
rafiozo1 Październik 22, 2015 Udostępnij Październik 22, 2015 Jaki fotorezystor trzeba użyć do "Lampka uruchamiana w ciemności v2" wydaje mi się że 1K.
Treker (Damian Szymański) Październik 22, 2015 Udostępnij Październik 22, 2015 rafiozo1, w zestawach do kursu znajduje się tylko jeden typ fotorezystorów, więc nie ma obaw
G1T Listopad 12, 2015 Udostępnij Listopad 12, 2015 Treker, a mógłbyś napisać, które fotorezystory zostały dołączone do zestawu?
Treker (Damian Szymański) Listopad 12, 2015 Udostępnij Listopad 12, 2015 G1T, niestety w tej chwili nie mam tej informacji. Najlepiej zapytaj w Botlandzie - oni odpowiadają za to, aby wszystkie zestawy zawierały poprawne elementy
klewik Grudzień 14, 2015 Udostępnij Grudzień 14, 2015 Cześć wszystkim ! Doszedłem do zadania 4.6. Udało mi się je zrobić w poniższy sposób. Dajcie znać czy można jakoś - prościej, lepiej itd... #define zielona1 12 #define zielona2 11 #define zolta1 10 #define zolta2 9 #define czerwona1 8 #define czerwona2 7 int odczytfoto1 = 0; int odczytfoto2 = 0; float napiecie1 = 0; float napiecie2 = 0; float proporcja = 0; void setup(){ pinMode(zielona1, OUTPUT); pinMode(zielona2, OUTPUT); pinMode(zolta1, OUTPUT); pinMode(zolta2, OUTPUT); pinMode(czerwona1, OUTPUT); pinMode(czerwona2, OUTPUT); digitalWrite(zielona1, LOW); digitalWrite(zielona2, LOW); digitalWrite(zolta1, LOW); digitalWrite(zolta2, LOW); digitalWrite(czerwona1, LOW); digitalWrite(czerwona2, LOW); } void loop() { odczytfoto1 = analogRead(A4); odczytfoto2 = analogRead(A5); napiecie1 = odczytfoto1 * (5.0/1023.0); napiecie2 = odczytfoto2 * (5.0/1023.0); proporcja = (napiecie1/napiecie2); if ((napiecie1 > napiecie2) and (proporcja > 1.2) ) { digitalWrite(czerwona1, HIGH); digitalWrite(czerwona2, HIGH); digitalWrite(zolta1, LOW); digitalWrite(zolta2, LOW); } if ((napiecie2 > napiecie1) and (proporcja < 0.8) ) { digitalWrite(zielona1, HIGH); digitalWrite(zielona2, HIGH); digitalWrite(zolta1, LOW); digitalWrite(zolta2, LOW); } if ((proporcja > 0.7) and (proporcja < 1.3)) { digitalWrite(zolta1, HIGH); digitalWrite(zolta2, HIGH); digitalWrite(czerwona1, LOW); digitalWrite(czerwona2, LOW); digitalWrite(zielona1, LOW); digitalWrite(zielona2, LOW); } }
Treker (Damian Szymański) Grudzień 15, 2015 Udostępnij Grudzień 15, 2015 klewik, ciekawe rozwiązanie - ważne, że działa Pamiętaj tylko, aby dodawać komentarze. Za jakiś czas zapomnisz sam, jak to wszystko działa.
carlos711 Grudzień 24, 2015 Udostępnij Grudzień 24, 2015 witam, mam problem przy kompilacji programu dotyczącego Wskaźnika na diodach wyskakuje mi błąd : collect2.exe: error: ld returned 5 exit status exit status 1 Błąd kompilacji. nie zależnie czy napisałem program sam, czy skopiowałem jest to samo, dlaczego?
Treker (Damian Szymański) Grudzień 24, 2015 Udostępnij Grudzień 24, 2015 carlos711, przy innych programach nie było takiego problemu? Problem opisany jest na forum Arduino: https://forum.arduino.cc/index.php?topic=310950.0 W ostateczności spróbuj przeinstalować środowisko.
olinpus Grudzień 29, 2015 Udostępnij Grudzień 29, 2015 Witam. Oto moje rozwiązanie zadnia 4.6. Napisane trochę chaotycznie ale działa. Dodałem jeden element, mianowicie gdy nie pada na czujniki żadne światło miga jedna dioda. int wartosc1 = 0; int wartosc2 = 0; int wartosc_1 = 0; int wartosc_2 = 0; void setup () { Serial.begin(9600); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(7, OUTPUT); } void loop() { wartosc1 = analogRead(A5); wartosc2 = analogRead(A0); Serial.print("Czujnik 1: "); Serial.print(wartosc1); Serial.print(" Czujnik 2: "); Serial.println(wartosc2); wartosc_1 = map(wartosc1, 0, 1023, 0, 50); wartosc_2 = map(wartosc2, 0, 1023, 0, 50); if (wartosc2 < 20) { digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, LOW); digitalWrite(6, LOW); digitalWrite(7, LOW); delay(500); digitalWrite(5, HIGH); delay(550); } else { if (wartosc1 < 20) { digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, LOW); digitalWrite(6, LOW); digitalWrite(7, LOW); delay(500); digitalWrite(5, HIGH); delay(550); } else { if(wartosc_1 >> wartosc_2) { digitalWrite(3, HIGH); digitalWrite(4, LOW); digitalWrite(5, LOW); digitalWrite(6, LOW); digitalWrite(7, LOW); } else { if(wartosc_1 == wartosc_2) { digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, HIGH); digitalWrite(6, LOW); digitalWrite(7, LOW); } else { if(wartosc_2 >> wartosc_1) { digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, LOW); digitalWrite(6, LOW); digitalWrite(7, HIGH); } else { if (wartosc_2 > wartosc_1) { digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, LOW); digitalWrite(6, HIGH); digitalWrite(7, LOW); } else { if (wartosc_1 > wartosc_2) { digitalWrite(3, LOW); digitalWrite(4, HIGH); digitalWrite(5, LOW); digitalWrite(6, LOW); digitalWrite(7, LOW); } } } } } } } delay(50); }
Treker (Damian Szymański) Grudzień 29, 2015 Udostępnij Grudzień 29, 2015 olinpus, jeśli działa, to super Popracuj jeszcze nad wcięciami i komentarzami, bo tego brakuje!
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »