3.1. Katse Nuppude ja Slideswitch’i kasutamise võimalus
Кнопка — при ножатии используется, чтобы запустить действие, выполнить команду.

конструкция работает так, что при первом нажатии светодиод включается, а при втором выключается

const int button1Pin = 2;
const int button2Pin = 3;
const int ledPin = 13;
void setup()
{
pinMode(button1Pin, INPUT);
pinMode(button2Pin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop()
{
int button1State, button2State;
button1State = digitalRead(button1Pin);
button2State = digitalRead(button2Pin);
if (((button1State == LOW) || (button2State == LOW))
&& !
((button1State == LOW) && (button2State == LOW)))
{
digitalWrite(ledPin, HIGH); // lülitame LED sisse
}
else
{
digitalWrite(ledPin, LOW); // lülitame LED välja
}
}
Näidis- Slideswitch’i kasutamine
Ключ — электрический коммутационный аппарат или устройство, применяется для замыкания или размыкания электрической цепи или группы электрических цепей.
батарейка — небольшой по размеру элемент питания электроэнергией для различных устройств.
От положения переключателя зависит работа

int swPin=4;
int ledPin=10;
int switchstate=0;
void setup()
{
pinMode(swPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop()
{
switchstate=digitalRead(swPin);
if(switchstate==HIGH)
{
digitalWrite(ledPin,HIGH);
}
else
{
digitalWrite(ledPin,LOW);
}
}
3.2. Katse Photoresistor

Фоторезистор — полупроводниковый прибор, изменяющий величину своего сопротивления при облучении светом

const int sensorPin = 0;
const int ledPin = 9;
int lightLevel, high = 0, low = 1023;
void setup()
{
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop()
{
lightLevel = analogRead(sensorPin);
manualTune();
autoTune();
analogWrite(ledPin, lightLevel);
Serial.print(lightLevel);
Serial.println("");
delay(1000);
}
void manualTune()
{
lightLevel = map(lightLevel, 300, 800, 0, 255);
lightLevel = constrain(lightLevel, 0, 255);
}
void autoTune()
{
if (lightLevel < low)
{
low = lightLevel;
}
if (lightLevel > high)
{
high = lightLevel;
}
lightLevel = map(lightLevel, low+10, high-30, 0, 255);
lightLevel = constrain(lightLevel, 0, 255);
Ülesanne 3 Öölamp
ночник загорается когда он включен кнопкой и фоторезистор при этом не чувствует свет. Можно использовать как обычный ночник в комнате для легкого освещен

https://drive.google.com/file/d/1tt05RBd8ZYeSBzsS4E8hfQkL8PSayz_q/view?usp=sharing
https://drive.google.com/file/d/1JMid_asF0-DBlV7FlE57r455co3Qo79e/view?usp=sharing
const int swPin = 4;
const int ledPin1 = 9;
const int ledPin2 = 10;
const int ledPin3 = 11;
const int ledPin4 = 6;
const int ledPin5 = 5;
int switchState = 0;
const int sensorPin = A0;
int lightLevel, high = 0, low = 1023;
void setup()
{
pinMode(swPin, INPUT);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
pinMode(ledPin5, OUTPUT);
Serial.begin(9600);
}
void loop()
{
lightLevel = analogRead(sensorPin);
Serial.print(lightLevel);
Serial.println("");
switchState = digitalRead(swPin);
Serial.print(switchState);
Serial.println("");
analogWrite(ledPin1, lightLevel);
analogWrite(ledPin2, lightLevel);
analogWrite(ledPin3, lightLevel);
analogWrite(ledPin4, lightLevel);
analogWrite(ledPin5, lightLevel);
if (switchState == HIGH)
{
lightLevel = analogRead(sensorPin);
Serial.print(lightLevel);
Serial.println("");
switchState = digitalRead(swPin);
Serial.print(switchState);
Serial.println("");
analogWrite(ledPin1, lightLevel);
analogWrite(ledPin2, lightLevel);
analogWrite(ledPin3, lightLevel);
analogWrite(ledPin4, lightLevel);
analogWrite(ledPin5, lightLevel);
}
else
{
analogWrite(ledPin1, LOW);
analogWrite(ledPin2, LOW);
analogWrite(ledPin3, LOW);
analogWrite(ledPin4, LOW);
analogWrite(ledPin5, LOW);
}
}
void manualTune()
{
lightLevel = map(lightLevel, 300, 800, 0, 255);
lightLevel = constrain(lightLevel, 0, 255);
}
void autoTune()
{
if (lightLevel < low)
{
low = lightLevel;
}
if (lightLevel > high)
{
high = lightLevel;
}
lightLevel = map(lightLevel, low + 10, high - 30, 0, 255);
lightLevel = constrain(lightLevel, 0, 255);
delay(1000);
}