experement:3 button & protoresistor

3.1. Katse Nuppude ja Slideswitch’i kasutamise võimalus

Komponendid:
2 Nuppu
1 LED
2tk 10k oom taakisti
1tk 330 om takisti
7 traati

Skeem:

—–Kood—–

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

  button1State = digitalRead(button1Pin);// salvestame muutujasse nupu hetke väärtuse(HIGH või LOW)

  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);  // lülitame LED sisse

  }

  else                          

  {

    digitalWrite(ledPin, LOW);  // lülitame LED välja

  }    	

  }

2.- Näidis- Slideswitch’i kasutamine

Skeem:

—–Kood—–

// C++ code

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

Skeem:

—–Kood—–

const int sensorPin = 0;

const int ledPin = 9;

int lightLevel, high = 0, low = 1023; 

void setup()

{

  pinMode(ledPin, OUTPUT);

  Serial.begin(9600); // //Serial monitori seadistamine

}

void loop()

{

 
  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

Toimingu kirjeldus

Valgusbarjääri töötamine kolmes režiimis patentsiomeetri abil.

Komponendid:

  • Arduino Uno R3
  • Väike arduinoplaat
  • Fotoresistor
  • Potentsiomeeter
  • 3 takistit (220 Om) ja 1 takisti (10 kOm)
  • RGB LED

Töö kirjeldus:
Öövalgustus on RGB LED, mis muudab värvi sõltuvalt potentsiomeetri asendist.
Esimeses asendis – punane, teises asendis – roheline, kolmandas asendis – sinine.
LED lülitub sisse, kui fotoresistor on pimedas.

Kus kasutatakse patareisid, fotoresistoreid jne.:

Nuppe, patareisid ja fotoresistoreid kasutatakse elektroonikas, autotööstuses, tööstusprotsessides, meditsiinitehnoloogias ja muudes rakendustes funktsioonide kontrollimiseks, toiteallikaks ja keskkonnakontrolliks.

Skeem:

Programm:

//Пины светодиода
int RED_PIN = 13;
int BLUE_PIN = 8;
int GREEN_PIN = 12;

int photo = 0;  //Фоторезистор
int lightLevel = 0;

int sensorPin = 1; // Потенциометр
int sensorValue = 0;

void setup()
{
pinMode(RED_PIN, OUTPUT);
pinMode(GREEN_PIN, OUTPUT);
pinMode(BLUE_PIN, OUTPUT);
pinMode(photo, OUTPUT);
pinMode(sensorPin, OUTPUT);

Serial.begin(9600);
}

void loop()
{
lightLevel = analogRead(photo);
lightLevel = map(lightLevel, 300, 900, 0, 255);
lightLevel = constrain(lightLevel, 0, 255);
  
Serial.print(lightLevel);
Serial.println("");

sensorValue=analogRead(sensorPin);
sensorValue=map(sensorValue, 0, 1023, 0, 3);
sensorValue=constrain(sensorValue, 0, 3);
Serial.println(sensorValue);
//Первое положение (красный)
if (sensorValue == 1 && lightLevel > 80)
{
	digitalWrite(RED_PIN, HIGH);
	digitalWrite(GREEN_PIN, LOW);
	digitalWrite(BLUE_PIN, LOW);
	delay(1000);
}

else if(sensorValue == 1 && lightLevel < 255 )
{
	digitalWrite(RED_PIN, LOW);
	digitalWrite(GREEN_PIN, LOW);
	digitalWrite(BLUE_PIN, LOW);
	delay(1000);
}
//Первое положение (зеленый)
else if (sensorValue == 2 && lightLevel > 80)
{
	digitalWrite(RED_PIN, LOW);
	digitalWrite(GREEN_PIN, LOW);
	digitalWrite(BLUE_PIN, HIGH);
	delay(1000);
}
  
else if(sensorValue == 2 && lightLevel < 255 )
{
	digitalWrite(RED_PIN, LOW);
	digitalWrite(GREEN_PIN, LOW);
	digitalWrite(BLUE_PIN, LOW);
	delay(1000);
}
//Первое положение (синий)  
else if (sensorValue == 3 && lightLevel > 80)
{
	digitalWrite(GREEN_PIN, HIGH);
	digitalWrite(RED_PIN, LOW);
	digitalWrite(BLUE_PIN, LOW);
	delay(1000);
}
  
else if(sensorValue == 3 && lightLevel < 255 )
{
	digitalWrite(RED_PIN, LOW);
	digitalWrite(GREEN_PIN, LOW);
	digitalWrite(BLUE_PIN, LOW);
	delay(1000);
}

}

Video:

Uued funktsioonid:

sensorValue = analogRead(sensorPin);
lightLevel = analogRead(photo);