Co potrzebujemy?
Oczywiście tej samej płytki, którą wykorzystaliśmy w poprzednich zadaniach:
Moduł Mega2560 na układzie Atmega2560-16A U
potrzebujemy też rezystor 1 kΩ a także dowolny fotorezystor a także 1 kanałowy przekaźnik 5V 10A AVR ARM ARDUINO 230 volt omówiony w tym temacie:
https://flesztech.blogspot.com/2019/03/arduino-budujemy-aktywator-wlacznik-sejf-zamek-na-kod-pin.html
Schemat połączeń:
Pomiary możemy także odczytać w monitorze portu COM:
Sketch do wgrania:
int pomiarswiatla;
void setup() {
Serial.begin(9600); // prędkość portu COM do odczytu
pinMode(53, OUTPUT); //wskazanie pinu dla 1 diody lub przekaźnika
pinMode(51, OUTPUT); //wskazanie pinu dla 2 diody lub przekaźnika
digitalWrite(51, LOW);//wyłączenie diody lub przekaźnika
digitalWrite(53, LOW);//wyłączenie diody lub przekaźnika
}
void loop() {
pomiarswiatla = analogRead(A0); // wskazanie pinu czytającego dane analogowe
Serial.print("Pomiar światła = "); //napis dla monitora portu
Serial.println(pomiarswiatla);
if (pomiarswiatla < 920) { //przy jakim pomiarze ma nastąpić reakcja?
digitalWrite(53, HIGH);//włączenie 1 diody lub przekaźnika
digitalWrite(51, LOW);//wyłączenie 2 diody lub przekaźnika
if (pomiarswiatla < 700) { //przy jakim pomiarze ma nastaspić reakcja?
digitalWrite(51, HIGH);//włączenie diody lub przekaźnika
}
}
else {
digitalWrite(53, LOW);//wyłączenie 1 diody lub przekaźnika
digitalWrite(51, LOW);//wyłączenie 2 diody lub przekaźnika
}
delay(1000); //co ile sekund ma być odczyt z fotorezystora?
}
Gotowiec do pobrania:
Gotowy efekt: