Veronika Milovzorova portfolio/ est

katse 3. öölamp

Katse Nuppude ja Slideswitch’i kasutamise võimalus

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

  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 

  }    	

  }
int swPin=4; //Pin, millega lüliti on ühendatud
int ledPin=10; //Pin, millega LED on ühendatud
int switchstate=0; // Muutuja lüliti oleku salvestamiseks

void setup()
{
  pinMode(swPin,INPUT); // Seadke lüliti viik sisendrežiimile (INPUT)
  pinMode(ledPin,OUTPUT); // Seadke lüliti viik sisendrežiimile (INPUT) 
}

void loop()
{
  switchstate=digitalRead(swPin); // Lüliti oleku lugemine
  if(switchstate==HIGH) // Kui lüliti on lubatud
  {
    digitalWrite(ledPin,HIGH); // Lülitage LED sisse
  }
  else
  {
    digitalWrite(ledPin,LOW); // Lülitage LED välja 
  }
}

photoresistor

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();  //vahemiku käsitsi muutmine heledast tumedaks

  

  analogWrite(ledPin, lightLevel);// vahemiku käsitsi muutmine heledast tumedaks




  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)   // kui tase "lightLevel" on väiksem kui 1023, siis määrake

  {                      

    low = lightLevel;     // nüüd "madalaim" ~ 800
  }

  if (lightLevel > high)

  {

    high = lightLevel;

  }

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

  lightLevel = constrain(lightLevel, 0, 255);

}

öölamp

Kood on programm kolmevärvilise LED-iga valgusti juhtimiseks, mis põhineb fototakistilt ja teiselt andurilt saadud väärtustel. Sõltuvalt valguse tasemest ja anduri väärtusest muudab LED värvi.

KASUTASIN:

4 takisti
12 juhet
1 valgustakisti
1 potentsiomeeter

int RED_PIN = 7; // LED-i punase värvi tihvt
int BLUE_PIN = 12; // LED-i sinise värvi tihvt
int GREEN_PIN = 8; // LED-i rohelise värvi tihvt
int Sensorpin = A0; // Analoogviik anduri signaali lugemiseks
int takis = A1; // Analoogviik fototakisti signaali lugemiseks
int lightLevel, high = 0, low = 1023; // Переменные для хранения уровня освещенности

int DISPLAY_TIME = 100; // Aeg väärtuse kuvamiseks jadapordis
int sensorValue = 0;  // Muutuja anduri väärtuse salvestamiseks
int Value_new; // Переменная для хранения нового значения с датчика

void setup()

{ 
  pinMode(RED_PIN, OUTPUT); // Seadke punase LED-i viik väljundrežiimile (OUTPUT)

  pinMode(BLUE_PIN, OUTPUT); // Seadke sinise LED-i viik väljundrežiimile (OUTPUT)

  pinMode(GREEN_PIN, OUTPUT); // Установка пина для зеленого светодиода в режим вывода (OUTPUT)
  
  Serial.begin(9600); // Andmete pordi monitorile väljastamiseks lähtestage jadaport 

}

void loop()

{
  int photoresistorValue = analogRead (takis); // Lugege väärtust fototakistist
  Serial.println(photoresistorValue); // Fototakisti väärtuse väljastamine pordimonitorile
  if (photoresistorValue<100) // Kui valgustase on madal
  {
    digitalWrite(RED_PIN, LOW);
    digitalWrite(BLUE_PIN, LOW);
    digitalWrite(GREEN_PIN, LOW);
  }
  else
  {
    if (Value_new <=10) // Kui anduri uus väärtus on väiksem kui 10 või sellega võrdne
    {
      digitalWrite(RED_PIN, LOW);
      digitalWrite(BLUE_PIN, LOW);
      digitalWrite(GREEN_PIN, LOW);
    }

  Value_new = analogRead(Sensorpin); // Andurilt väärtuse lugemine
  
    Value_new=map(Value_new,0,1023,1,3);
  if (Value_new==1)
    {
      redpon();
    }
    else if (Value_new==2)
    {
      greenpon();
    }
    else if (Value_new==3)
    {
      bluepon();
    }
    else
    {
      digitalWrite(RED_PIN, LOW); // Välja lülitama

      digitalWrite(BLUE_PIN, LOW);

      digitalWrite(GREEN_PIN, LOW);

      float voltage = sensorValue * (5.0 / 1023.0); 

      Serial.println(voltage);
    }

  }
  
}
  
void redpon()

{

  digitalWrite(RED_PIN, HIGH);

  digitalWrite(GREEN_PIN, LOW);

  digitalWrite(BLUE_PIN, LOW);

  delay(1000);
}

void greenpon()
{
  

  digitalWrite(RED_PIN, LOW);

  digitalWrite(GREEN_PIN, HIGH);

  digitalWrite(BLUE_PIN, LOW);

  delay(1000);
}

void bluepon()
{


  digitalWrite(RED_PIN, LOW);

  digitalWrite(GREEN_PIN, LOW);

  digitalWrite(BLUE_PIN, HIGH);

  delay(1000);
}

Kus kasutatakse valgustakisti:
1.Automaatne valgustus
2.Elektroonika
3.kauguse määramine objektist, selle olemasolu/puudumine
4.Meditsiin: meditsiinitehnoloogias kasutatakse valgusandureid näiteks hapnikutaseme mõõtmiseks
5.Turvalisus: Valgusandureid saab kasutada turvasüsteemides liikumise või takistuste tuvastamiseks.

et