Przy okazji możecie sprawdzić moje pozostałe zadania. Chyba jedyny problem jaki z nimi mam to z 4.6 gdyż dioda najbardziej po lewej czyli na pinie 12 nie chce mi się zaświecić. Nie wiem czy to problem z programem czy po prostu nie osiągnąłem takiej różnicy na dzielnikach, żeby się zaświeciła. Z góry bardzo dziękuję
4.4
int odczytanaWartosc = 0;
int naszLimit = 0;
float napiecie = 0;
void setup() {
pinMode(8, OUTPUT);
Serial.begin(9600);
}
void loop() {
odczytanaWartosc = analogRead(A5);
naszLimit = analogRead(A4);
napiecie = odczytanaWartosc * (5.0/1023.0);
if (odczytanaWartosc < naszLimit) {
digitalWrite(8, HIGH);
Serial.println(napiecie);
while (odczytanaWartosc < naszLimit){
odczytanaWartosc = analogRead(A5);
naszLimit = analogRead(A4);
delay(50);
}
} else {
digitalWrite(8, LOW);
}
delay(50);
}
4.5
#define zielona 8
#define zolta 9
#define zolta2 10
#define czerwona 11
#define przycisk 7
String odebraneDane = "";
int naszaLiczba = 0;
boolean reset = true;
int proby = 0;
int liczba = 0;
void setup () {
Serial.begin(9600);
pinMode(zielona,OUTPUT);
pinMode(zolta,OUTPUT);
pinMode(zolta2,OUTPUT);
pinMode(czerwona,OUTPUT);
pinMode(7,INPUT_PULLUP);
}
void loop () {
if(reset == true){
reset = !reset;
proby = 0;
Serial.println("Przekręć potencjometr i wciśnij przycisk");
liczba = analogRead(A5);
while(digitalRead(przycisk) == HIGH) {}
digitalWrite(zielona,LOW);
digitalWrite(zolta,LOW);
digitalWrite(zolta2,LOW);
digitalWrite(czerwona,LOW);
Serial.println("Podaj liczbę:");
}
if(Serial.available()>0){
odebraneDane = Serial.readStringUntil('\n');
naszaLiczba = odebraneDane.toInt();
if(naszaLiczba>liczba-50 and naszaLiczba<liczba+50){
digitalWrite(zielona,HIGH);
digitalWrite(zolta,LOW);
digitalWrite(zolta2,LOW);
reset = !reset;
}
if(naszaLiczba<liczba-50 or naszaLiczba>liczba+50){
proby = proby+1;
if(proby==1)
digitalWrite(zolta,HIGH);
if(proby==2)
digitalWrite(zolta2,HIGH);
if(proby==3){
digitalWrite(czerwona,HIGH);
reset = !reset;
}
}
}
}
4.6
void setup(){
Serial.begin(9600);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
}
void loop(){
czujnikLewy = analogRead(A3);
czujnikPrawy = analogRead(A5);
roznica = czujnikLewy - czujnikPrawy;
naszaSkala = map(roznica,-1023,1023,1,5);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
if(naszaSkala == 1) //1 oznacza ze duzo wiecej swiatla po prawej stronie
digitalWrite(8,HIGH);
if(naszaSkala == 2)
digitalWrite(9,HIGH);
if(naszaSkala == 3)
digitalWrite(10,HIGH); // 3 oznacza ze mniej wiecej po rowno swiatla
if(naszaSkala == 4)
digitalWrite(11,HIGH);
if(naszaSkala == 5) //5 oznacza ze duzo wiecej swiatla po lewej stronie
digitalWrite(12,HIGH);
delay(50);
}