Szybkość migania z portu szeregowego
Część sekcji Wejścia ścieżki Arduino w Coddy. Lekcja 17 z 22.
Wpisz 250, a płytka otrzyma trzy znaki: '2', '5' i '0', a następnie znak nowej linii. Serial.parseInt() odczytuje cyfry i zamienia je na liczbę 250, zatrzymując się na pierwszym znaku, który nie jest cyfrą.
Jest jednak pewien haczyk: gdy nie pojawi się żadna cyfra, parseInt() czeka na nią do 1 sekundy, a następnie zwraca 0. Dzieje się tak po każdej wpisanej przez Ciebie liczbie: znak nowej linii, który ją zakończył, nadal czeka, więc Serial.available() ponownie jest większe od 0, a parseInt() nie znajduje żadnej cyfry, czeka sekundę i zwraca 0.
Dlatego traktuj 0 jako „nic przydatnego” i zachowuj poprzednią wartość:
if (Serial.available() > 0) {
int n = Serial.parseInt();
if (n > 0) {
wait = n;
}
}Zauważysz, że dioda LED zatrzymuje się na sekundę po każdej wpisanej przez Ciebie liczbie: to parseInt() czeka.
Wyzwanie
ŚredniDioda LED na pinie 13 miga: świeci przez wait ms i gaśnie na wait ms, przy czym wait początkowo wynosi 500. Zmień szybkość za pomocą monitora portu szeregowego:
- gdy dostępne są znaki, odczytaj liczbę za pomocą
Serial.parseInt() - jeśli jest większa od 0, zapisz ją w
wait
Naciśnij Run, wyślij 100 z monitora portu szeregowego, a następnie naciśnij Check.
Spróbuj swoich sił
const int ledPin = 13;
int wait = 500;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
// gdy znaki czekają na odczyt, wczytaj liczbę do wait (jeśli jest większa od 0)
digitalWrite(ledPin, HIGH);
delay(wait);
digitalWrite(ledPin, LOW);
delay(wait);
}
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Wejścia
3Wejście szeregowe
Odczyt znaku z portu szeregowegoPolecenia słowneSzybkość migania z portu szeregowegoMiganie na poleceniePoćwicz samodzielnie: Edytor online Arduino