Ahoj, jsem úplný začátečník, ale měl bych dotaz na který jsem nikde nenašel odpověď.
Do arduina jsem zapojil potenciometr a 3 ledky s tím, že jsem chtěl, aby se ledky jednotlivě rozsvěcovaly a zhasínaly podle toho, jak točím potenciometrem, ale z nějakého důvodu mi ledky nezhasínají (zůstanou svítit i když mám hodnotu potenciometru 0). Myslel jsem, že ten loop jede pořád dokola, ale očividně ne. Když dám na konec delay, tak ledky začnou blikat a všechno funguje jak má, ale zatím jsem nepřišel na to, jak to udělat s rozsvícenýma ledkama. Můžete mi to někdo prosím vysvětlit? Díky.
int LEDblue = 2;
int LEDyellow = 3;
int LEDred = 4;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(LEDred, OUTPUT);
pinMode(LEDyellow, OUTPUT);
pinMode(LEDblue, OUTPUT);
}
void loop() {
int sensorValue = analogRead(A0);
Serial.println(sensorValue);
delay(100);
if (sensorValue < 330){
digitalWrite(LEDblue, HIGH);
}
else if (sensorValue > 660){
digitalWrite(LEDblue, HIGH);
digitalWrite(LEDyellow, HIGH);
digitalWrite(LEDred, HIGH);
}
else {
digitalWrite(LEDblue, HIGH);
digitalWrite(LEDyellow, HIGH);
}
}
loop - dotaz začátečníka
Re: loop - dotaz začátečníka
No, hlavne ty LEDky sice rozsvecis, ale uz nikde nezhasinas.
Jakmile LEDku jednou nastavis na HIGH, tak bude svitit do doby, nez ji nastavis na LOW, coz nikde nedelas.
(Ano, zustane svitit i pri dalsim pruchodu tou loop() i kdyz ji v tom pruchodu nenastavujes.)
Jakmile LEDku jednou nastavis na HIGH, tak bude svitit do doby, nez ji nastavis na LOW, coz nikde nedelas.
(Ano, zustane svitit i pri dalsim pruchodu tou loop() i kdyz ji v tom pruchodu nenastavujes.)
Re: loop - dotaz začátečníka
pokud jsi myslel, aby to chodilo takto
odkaz na video : https://www.youtube.com/watch?v=AoeeWS_4gM0
kod může vypadat i takhle
pokud si otevřeš seriový monitor uvidíš na něm hodnoty na pinu A0, tady taky zjištíš jestli se opravdu rozsvěcí a zhasínají ledky podle nastavených hodnot v podmínkách , doporučuju - vyzkoušej si je změnit , a uvidíš co se při změnách stane
jo, a místo žluté led mám zelenou
odkaz na video : https://www.youtube.com/watch?v=AoeeWS_4gM0
kod může vypadat i takhle
Kód: Vybrat vše
int LEDblue = 2; // pin pro modrou led
int LEDyellow = 3; // pin pro žlutou led
int LEDred = 4; // pin pro červenou led
void setup() {
Serial.begin(9600); // připojení seriového monitoru
pinMode(LEDred, OUTPUT);
pinMode(LEDyellow, OUTPUT);
pinMode(LEDblue, OUTPUT);
}
void loop() {
int sensorValue = analogRead(A0); // střední pin potenciometru, krajní na +5V - na GND
Serial.println(sensorValue); // vytisknutí hodnoty na seriovém monitoru
delay(1); // prodleva zobrazování na ser.monitoru
if (sensorValue > 330){ // když je přečtená hodnota z pinu A0 potenciometru větší než 330 tak
digitalWrite(LEDblue, HIGH); // rožni modrou led
digitalWrite(LEDyellow, LOW); // nechej zhasnutou žlutou led
digitalWrite(LEDred, LOW); // nechej zhasnutou červenou led
}
if (sensorValue > 660){ // když je přečtená hodnota z pinu A0potenciometru větší než 660 tak
digitalWrite(LEDblue, HIGH); // nechej rožnutou modrou led
digitalWrite(LEDyellow, HIGH); // rožni žlutou led
digitalWrite(LEDred, LOW); // nechej zhasnutou červenou led
}
if (sensorValue > 990){ // když je přečtená hodnota z pinu A0 potenciometru větší než 990 tak
digitalWrite(LEDblue, HIGH); // nechej rožnutou modrou led
digitalWrite(LEDyellow, HIGH); // nechej rožnutou žlutou led
digitalWrite(LEDred, HIGH); // rožni červenou led
}
if (sensorValue == 0) { // když je přečtená hodnota z pinu A0 potenciometru rovná 0 tak
digitalWrite (LEDblue, LOW); // zhasni všechny ledky
digitalWrite (LEDyellow, LOW);
digitalWrite (LEDred, LOW);
}
}
jo, a místo žluté led mám zelenou
Re: loop - dotaz začátečníka
ok, kouknu na to. Děkuji za pomoc
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 8 hostů