etru_RU

Teema 3: NUPP ja PHOTORESISTOR / 3.2. Katse Photoresistor / Ülesanne 3 Öölamp

от автора

в

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

https://www.tinkercad.com/things/6zDitRfxeUF-frantic-bombul

Tööpõhimõte Katse Nuppude :

  • Valguse süttimiseks peate vajutama kahte nuppu.

Komponeendid Katse Nuppude :

  • 1 LED ;
  • 3 resistor ;
  • 2 nupud ;
  • 7 juhtmed ;
  • 1 Breadboard Small ;
  • 1 Arduino Uno R3

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

  }    	

  }

Photo


https://www.tinkercad.com/things/cakwj5iOfe2-fantastic-luulia-jaiks?sharecode=LouAJvLeyDkCUcoyD4jZzvoHWo9AXtzSFuNz-i9zYS0

Tööpõhimõte Katse Slideswitch’i :

  • Valguse sisselülitamiseks peate kasutama slaidilüliti.

Komponeendid Katse Slideswitch’i :

  • 1 LED ;
  • 1 resistor ;
  • 1 slaidilüliti ;
  • 7 juhtmed ;
  • 9V aku ;
  • 1 Breadboard Small ;
  • 1 Arduino Uno R3

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);
  }
  }

Photo


3.2. Katse Photoresistor

https://www.tinkercad.com/things/5bUxCxhum2F-shiny-habbi-fyyran?sharecode=WcAx-h2jsJvmhrUCAcpJWgNH0sDLgrr7nYxslJ9Tlsw

Tööpõhimõte Katse Photoresistor:

  • LED-i sisse- ja väljalülitamine photoresistor.

Komponeendid Katse Photoresistor :

  • 1 LED ;
  • 2 resistor ;
  • 6 juhtmed ;
  • 1 photoresistor;
  • 1 Breadboard Small ;
  • 1 Arduino Uno R3

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()

{

  // AnalogRead() kasutab väärtused vahemikus 0 (0 вольт) и 1023 (5 вольт).

  // AnalogWrite(),  kasutatakse, et LEDi sujuvalt sisselülitada 0(ei põle) kuni 255(põleb maksimalselt).
  lightLevel = analogRead(sensorPin); //loeme mõõdetud analoogväärtuse

  // Map() teisendab sisendi väärtused ühest vahemikust teisse. Näiteks, "from" 0-1023 "to" 0-255.

  // Constrain() saed muutujale kindlad piirväärtused.

  // Näiteks:  kui constrain() kohtub arvudega 1024, 1025, 1026.., siis ta teisendab need 1023, 1023, 1023..). Kui arvud vähem kui 0, siis teisendab need 0:. 

  // lightLevel = constrain(lightLevel, 0, 255);

  manualTune();  //

  //autoTune();  //

  analogWrite(ledPin, lightLevel);

  // Выражение выше, будет изменять яркость светодиода вместе с уровнем освещенности. Чтобы сделать наоборот, заменить в analogWrite(ledPin, lightLevel) "lightLevel" на "255-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)  

  {                      

    low = lightLevel;   

  }

  if (lightLevel > high)

  {

    high = lightLevel;

  }

  lightLevel = map(lightLevel, low+10, high-30, 0, 255);

  lightLevel = constrain(lightLevel, 0, 255);

}

Video/Photo

https://drive.google.com/file/d/1C-xXs5w9j3Ecx1qMx1Y0EgWzVpaho6Ik/view?usp=drivesdk


Ülesanne 3 Öölamp

https://www.tinkercad.com/things/6tKkZH6pt9c-surprising-bigery?sharecode=K_ouCSnZdj-183fMJlU19JCft5kFy4_5JiiCdLplgSM

Tööpõhimõte Öölamp:

  • LED-i sisse- ja väljalülitamine photoresistor.

Komponeendid Öölamp:

  • 1 LED RBG ;
  • 4 resistor ;
  • 12 juhtmed ;
  • 1 photoresistor;
  • 1 potentiometer ;
  • 1 Breadboard Small ;
  • 1 Arduino Uno R3

Kood:

const int ledPin  = 12;
const int led2Pin  = 10;
const int led3Pin = 11;
int sensorPote = A0;
int sensorPoteValue;
int sensorPhoto=A1; 
int sensorPhotoValue;
int Value;
void setup()
{
  pinMode(ledPin, OUTPUT); 
  pinMode(led2Pin, OUTPUT);
  pinMode(led3Pin, OUTPUT);
  Serial.begin(9600); 
}
void pinidOFF()
{
  digitalWrite(ledPin, LOW);
  digitalWrite(led2Pin, LOW); 
  digitalWrite(led3Pin, LOW);  
}
void red(int sensorPhotoValue) 
{  
  analogWrite(ledPin, sensorPhotoValue);
  analogWrite(led2Pin, 0);
  analogWrite(led3Pin, 0); 
} 
void green(int sensorPhotoValue)
{
  analogWrite(ledPin, 0);
  analogWrite(led2Pin, 0); 
  analogWrite(led3Pin, sensorPhotoValue); 
}
void white(int sensorPhotoValue)
{
  analogWrite(ledPin, sensorPhotoValue);
  analogWrite(led2Pin, sensorPhotoValue);
  analogWrite(led3Pin, sensorPhotoValue); 
} 
void blue(int sensorPhotoValue) 
{
  analogWrite(ledPin, 0);
  analogWrite(led2Pin, sensorPhotoValue);
  analogWrite(led3Pin, sensorPhotoValue);   
}
 void yellow(int sensorPhotoValue) 
{
  analogWrite(ledPin, sensorPhotoValue);
  analogWrite(led2Pin, sensorPhotoValue);
  analogWrite(led3Pin, 0);   
}
 void pink(int sensorPhotoValue)
{
  analogWrite(ledPin, sensorPhotoValue);
  analogWrite(led2Pin, 0);
  analogWrite(led3Pin, sensorPhotoValue);  
}
void loop()
{
  sensorPoteValue = analogRead(sensorPote); 
  Value=map(sensorPoteValue,0,1023,0,8);    
  sensorPhotoValue=analogRead(sensorPhoto); 
  sensorPhotoValue=map(sensorPhotoValue,300,800,0,255); 
  sensorPhotoValue=constrain(sensorPhotoValue,0,255);  
  Serial.print(sensorPhotoValue);
  Serial.print("->");  
  Serial.println(sensorPhotoValue);  
  if (Value==0 ) 
  {     
    pinidOFF();
  }
  else if (Value==1)
  {  
    red(sensorPhotoValue);
  }
  else if (Value==2)
  {    
    green(sensorPhotoValue);
  }
  else if (Value==3)
  {    
    blue(sensorPhotoValue);  
  }
  else if (Value==4)
  {    
    yellow(sensorPhotoValue); 
  }
  else if (Value==5) 
  {    
    pink(sensorPhotoValue);   
  }
  else
  {    
    white(sensorPhotoValue);
  } 
  delay(500);  
}

Video/Photo

https://drive.google.com/file/d/1Bbd9O6lVli22K9q7H1-9XkzYqFSmEUua/view?usp=drivesdk

Kommentaatorid (uued võimalused)

Const-deklaratsioon loob muutumatu viite väärtusele. See ei tähenda, et selle väärtus on muutumatu — lihtsalt muutuja identifikaatorit ei saa ümber määrata.

Arduino switch state tähendab Arduino arduino arvus oleva lüliti olekut. Kui lüliti on ühes asendis, vastab see ühele olekule ja kui see on teise asendisse lülitatud, on see juba teine olek.

«lightLevel Arduino’s» tähendab valgustugevust, mida saab mõõta Arduinoga ühendatud valgusanduriga. See võimaldab teil saada teavet ümbritseva valgustugevuse praeguse taseme kohta. Seda teavet saab kasutada valgusdioodide või muude komponentide juhtimiseks sõltuvalt valgustingimustest.

Kasutamisvõimalused tavaelus :

Rakendused elus Võib kasutada laternad või päikesepaneelid, öömaja, lühter, automaatne laualamp


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *