Skocz do zawartości

ewgron

Użytkownicy
  • Zawartość

    6
  • Rejestracja

  • Ostatnio

Reputacja

6 Neutralna

O ewgron

  • Ranga
    2/10
  1. Dzięki za opinię Ciekawa sugestia do przemyślenia Przyznam, że na początku sceptycznie podchodziłem do Arduino ale już teraz czuję, że zaczyna mnie wciągać. I moim zdaniem prawdą jest, że trzeba wykonywać dużo ćwiczeń praktycznych - nauka przez rozwiązywanie problemów jest skuteczna i sprawia dużo frajdy
  2. Moja propozycja rozwiązania zadania 4.5 Układ: Kod: #define zielona 8 #define czerwona 9 #define zolta 10 #define potencjometr A5 #define przycisk 11 String wpisanaWartosc = ""; //Wartość wpisana przez gracza int liczba = 0; //Wartość wpisana przez gracza zamieniona na liczbę int wartoscUstawiona = 0; //Wartość odczytana z potencjometru int proba = 0; //Licznik prób void setup() { Serial.begin(9600); //Uruchomienie komunikacji pinMode(zielona, OUTPUT); //Ustawienie wyjść pinMode(czerwona, OUTPUT); pinMode(zolta, OUTPUT); pinMode(przycisk, INPUT_PULLUP); digitalWrite(zielona, LOW); //Wyłącznie diod digitalWrite(czerwona, LOW); digitalWrite(zolta, LOW); } void loop() { if (proba<3) { //Jeżeli licznik prób jest mniejszy od 3 Serial.println("Przekręć potencjometr, a następnie naciśnij przycisk."); while (digitalRead(przycisk) == HIGH) {delay(50);} //Poczekaj na wiśnięcie przycisku wartoscUstawiona = analogRead(potencjometr); //Odczytanie wartości z potenjometru Serial.println("Podaj liczbę z zakresu od 0 do 1023."); //Wyświetlenie komunikatu while (Serial.available()==0){delay(50);} //Oczekiwanie na wprowadzenie wartości if (Serial.available()>0) { //Jeżeli wartość została wprowadzona wpisanaWartosc = Serial.readStringUntil('\n'); //Przeczytanie wartości wprowadzonej liczba = wpisanaWartosc.toInt(); //Konwersja wartości wprowadzonej na liczbę if ((liczba<wartoscUstawiona+50) and (liczba>wartoscUstawiona-50)) { //Jeżeli wprowadzona liczba mieści się w zakresie digitalWrite(zielona, HIGH); //Włączenie diody zielonej Serial.println("Wygrana."); //Wyświetlenie komunikatu informującego o wygranej Serial.println(wartoscUstawiona); //Wyświetlenie prawidłowego wyniku delay(2000); digitalWrite(zielona, LOW); //Wyłączenie diody delay(1000); } else { //Jeżeli wprowadzona wartość jest spoza zakresu digitalWrite(zolta, HIGH); //Włączenie żółtej diody Serial.println("Błąd."); //Wyświetlenie komunikatu informującego o błędnej wartośći delay(2000); digitalWrite(zolta, LOW); //Wyłączenie żółtej diody delay(1000); proba=proba+1; //Zwiększenie licznika prób } } } else if (proba == 3) { //Jeżeli osiągnięto limit prób digitalWrite(czerwona, HIGH); //Włączenie czerwonej diody Serial.println("Przegrana."); //Wyświetlenie komunikatu informującego o przegranej Serial.println(wartoscUstawiona); //Wyświetlenie prawidłowego wyniku delay(2000); digitalWrite(czerwona, LOW); //Wyłączenie czerwonej diody delay(1000); proba = 0; //Zerowanie licznika prób } }
  3. Zadanie domowe nr 2.5*: #define zielona 8 #define czerwona 9 String odebraneDane = ""; //Pusty ciąg odebranych danych boolean stanZielona = false; boolean stanCzerwona = false; void setup() { Serial.begin(9600); //Uruchomienie komunikacji pinMode(zielona, OUTPUT); //Konfiguracja wyjść pinMode(czerwona, OUTPUT); digitalWrite(zielona, LOW); //Wyłączenie diod digitalWrite(czerwona, LOW); } void loop() { if(Serial.available() > 0) { //Czy Arduino odebranło dane odebraneDane = Serial.readStringUntil('\n'); //Jeśli tak, to odczytujemy je do znaku końca linii i zapisz w zmiennej odebraneDane if (odebraneDane == "zielona") { //Jeśli odebrano słowo "zielona" if (stanZielona == false) { //Jeżeli dioda zielona jest wyłączona digitalWrite(zielona, HIGH); //To włącz diodę zieloną stanZielona = true; //Informacja o stanie diody zielonej - włączona } else { //W przeciwnym wypadku digitalWrite(zielona, LOW); //Wyłącz diodę zieloną stanZielona = false; //Informacja o stanie diody zielonej - wyłączona } } else if (odebraneDane == "czerwona") { //Jeśli odebrano słowo "czerwona" if (stanCzerwona == false) { //Jeżeli dioda czerwona jest wyłączona digitalWrite(czerwona, HIGH); //To włącz diodę czerwoną stanCzerwona = true; //Informacja o stanie diody czerwonej - włączona } else { //W przeciwnym wypadku digitalWrite(czerwona, LOW); //Wyłącz diodę czerwoną stanCzerwona = false; //Informacja o stanie diody czerwonej - wyłączona } } else { //Jeżeli podano inne polecenie Serial.println("Błędne polecenie!"); //Wyświetl komunikat } } }
  4. Proszę o wyjaśnienie do czego służy rezystor Ra i dlaczego po zmniejszeniu jego wartości np. za pomocą potencjometru do bardzo małych wartości (poniżej 150 Ω) układ przestaje przełączać.
  5. Witam serdecznie. Dziękuję twórcom i autorom kursów. Po kursie elektroniki poziom I nadszedł czas na poziom II. Z niecierpliwością czekam już na poziom III
×
×
  • Utwórz nowe...