
// Nuppud (КНОПКИ).
// У кнопок есть два контакта, если кнопка нажата - контакт замкнут, если не нажата - разомкнут.
-----Код для Кнопки и светодиода-----
const int button1Pin = 2; //viik kunu on ühebdatud nupp1
const int button2Pin = 3; //viik kuhu on ühendatud nupp2
const int ledPin = 13;
void setup()
{
pinMode(button1Pin, INPUT); //algväärtuse nupu viigu sisendiks
pinMode(button2Pin, INPUT); //algväärtuse nupu viigu sisendiks
pinMode(ledPin, OUTPUT); //algväärtuse LED viigu väljundiks
}
void loop()
{
int button1State, button2State; //nupu oleku muutujad ( переменные для сохранения состояния кнопок)
// Поскольку кнопки имеют только два состояния (нажаты и не нажаты) мы будем
// работать с ними используя цифровые порты ввода. Для того чтобы считывать
// digitalRead() функция позволяет получить один параметр с цифрового порта и возвратить либо HIGH (+5V), либо LOW ("0").
button1State = digitalRead(button1Pin);// salvestame muutujasse nupu hetke väärtuse
button2State = digitalRead(button2Pin);
if (((button1State == LOW) || (button2State == LOW)) // kui nupu on alla vajutatud (сравниваем, нажата ли одна из кнопок)
&& ! // и если нет
((button1State == LOW) && (button2State == LOW))) // kui nupude on alla vajutatud (сравниваем, нажаты ли обе кнопки тогда...)
{
digitalWrite(ledPin, HIGH); // süütame LEDi (включаем светодиод)
}
else
{
digitalWrite(ledPin, LOW); // kustutame LEDi (выключаем светодиод)
}
}
3.2. Опыт фоторезистор

const int sensorPin = 0;
const int ledPin = 9;
int lightLevel, high = 0, low = 1023; // создадим глобальные переменные для уровней яркости high (высокий), low (низкий):
void setup()
{
pinMode(ledPin, OUTPUT);
Serial.begin(9600); // //Serial monitori seadistamine (для отладки, чтобы увидеть показания датчиков)
}
void loop()
{
lightLevel = analogRead(sensorPin); //loeme mõõdetud analoogväärtuse
manualTune(); // ручное изменение диапазона от светлого к темному
analogWrite(ledPin, lightLevel);
Serial.print(lightLevel); // prindime tulemused Serial Monitori (вывод данных с фоторезистора (0-1023))
Serial.println("");
delay(1000);
}
void manualTune()
{
lightLevel = map(lightLevel, 300, 800, 0, 255); // kaardistame selle analoogväljundi vahemikku (будет от 300 темно, до 800 (светло)).
lightLevel = constrain(lightLevel, 0, 255);
}
void autoTune()
{
if (lightLevel < low) // если уровень "lightLevel" меньше 1023, то присвоим
{
low = lightLevel; // теперь самым "низким" ~ 800
}
if (lightLevel > high)
{
high = lightLevel;
}
lightLevel = map(lightLevel, low+0, high-30, 0, 255);
lightLevel = constrain(lightLevel, 0, 255);
}
Задание 3 ночник:

https://www.tinkercad.com/things/6INHpmDI2uw?sharecode=ZYZhrVa11glUlCv1vDI85UTDaStKCZ1Xgvq9Dia9SMM
Я использовалa для этого проекта:
- 1 värvilist LEDi
- 1 Arendusplaat
- 9 Провода
- 1 Arduino Uno
- 2 Резистор
- 1 Потенциометр
- 1 Фоторезистор
Суть работы с опытом:
Пока есть свет, фоторезистор не включает светодиод. Когда свет гаснет, светодиод включается. Кнопка также может использоваться для включения и выключения света в ночное время, так что мы можем контролировать, хотим ли мы, чтобы свет включался ночью в темноте.
Kood:
int LEDPIN=9;
int PHOTOPIN=A3;
int BUTPIN=2;
int mode=0;
void setup()
{
pinMode(BUTPIN, INPUT_PULLUP);
pinMode(LEDPIN, OUTPUT);
}
void loop()
{
int val;
val=analogRead(PHOTOPIN);
if(digitalRead(BUTPIN)==LOW)
{
mode = mode+1;
}
if(mode==0)
{
digitalWrite(LEDPIN,LOW);
}
if(mode==1)
{
if(val>512)
{
digitalWrite(LEDPIN,HIGH);
}
else
{
digitalWrite(LEDPIN,LOW);
}
}
if(mode==2)
{
mode=0;
}
}
Photoresistor kasutamine:
- Kasutatakse trükitööstuses
- Kasutatakse tööstus- ja kodumasinates