Ülesanne 3

Öölamp

Töökirjeldus

Luua öölamp, mida saab potentsiomeeteri abiga sisse ja välja lülitada ning valgustakisti abiga erksuse reguleerida.

Valgustugevus (analogdigitalWrite(PIN ,0..255) / põlevate ledide hulk sõltub ümbritsevast valgusest. Ehk siis pimeajal lamp töötab.Päeval , kui valgust on tohutu suur – ei tööta. Kusjuures potentsiomeeteri vajutamisel võiks LED lampi värvi muuta

Valgustugevuse korral kasuta analogdigitalWrite(PIN ,0..255), kasutasin LEDid, digitalWrite(PIN,HIGH/LOW).

Kasutatud komponenid
Arduino UNO plaat (1tk)
Arendusplaat (1tk)
takisti (4tk)
juhet (12tk)
valgustakisti (1tk)
potentsiomeeter (1tk)

Kasutamine

Öölamp töötab potensiomeetri vajutamisel ning peale sisselülitamist võiks erksuse reguleerida valgustakisti abiga (0st – 255ni)

Kood kommetaridega

const int potensiometr = 1; // Potentsiomeetri analoogsisendi pin

int fototakisti = 0; // Fototakisti analoogsisendi pin

int lightLevel = 0; // Muutuja valguse taseme jälgimiseks
int Value_new = 0; // Muutuja potentsiomeetri väärtuse hoidmiseks

const int RED1 = 11; 
const int BLUE1 = 10; 
const int GREEN1 = 9;  

void setup()
{
  pinMode(RED1, OUTPUT); // LEDi pin väljundiks
  pinMode(BLUE1, OUTPUT); 
  pinMode(GREEN1, OUTPUT); 
}

void loop()
{
  // Lülita kõik LEDid välja
  digitalWrite(RED1, LOW);
  digitalWrite(BLUE1, LOW);
  digitalWrite(GREEN1, LOW);
  
  // Loe fototakisti väärtus
  lightLevel = analogRead(fototakisti);
  
  // Reguleeri valguse taset
  manualTune();
  
  // Loe potentsiomeetri väärtus
  Value_new = analogRead(potensiometr);
  
  // Kaardista potentsiomeetri väärtus vahemikku 0 kuni 3
  Value_new = map(Value_new, 0, 1023, 0, 3);
  
  
  if (Value_new == 2)
  {
    BLUE();
  }
  else if (Value_new == 1)
  {
    RED();
  }
  else if (Value_new == 3)
  {
    GREEN();
  }
  else
  {
    
    digitalWrite(RED1, LOW);
    digitalWrite(BLUE1, LOW); 
    digitalWrite(GREEN1, LOW);
  }
}

void manualTune()
{
  
  lightLevel = map(lightLevel, 300, 800, 0, 255);
  
  
  lightLevel = constrain(lightLevel, 0, 255);
} 

void GREEN()
{
  // Kasuta analogWrite funktsiooni valguse taseme reguleerimiseks
  analogWrite(GREEN1, lightLevel);
}

void RED()
{
  reguleerimiseks
  analogWrite(RED1, lightLevel);
}

void BLUE()
{
   reguleerimiseks
  analogWrite(BLUE1, lightLevel); 
}

Link

Konstruktsioon Tinkercad