KATSE 2.POTENTSIOMEETER

2.1 Vilgub

Kood:

int sensorPin = 0;    	  
int ledPin = 13;                           			  
int sensorValue = 0;  					  
void setup()
{       
  pinMode(ledPin, OUTPUT);  
  Serial.begin(9600);
}
void loop() {          					   
  sensorValue = analogRead(sensorPin); //   loeb analoog sisendi väärtust ja saadab tagasi täisarvu vahemikus 0 kuni 1023. See tähendab 10 bitilist täpsust (2^10 = 1024).		  
  digitalWrite(ledPin, HIGH);         
  delay(sensorValue);                 
  digitalWrite(ledPin, LOW);              
  delay(sensorValue);  
  float voltage = sensorValue * (5.0 / 1023.0); // konverteerime väärtuse (0 - 1023)  ja tagastab (0 - 5V):
  Serial.println(voltage);   // Saadud tulemused kirjutame Serial Monitori.         
}

Funktsioonid:

  1. map(sensorValue,0,1023,0,255) – on funktsioon, mis teisendab muutuja sensorValue väärtuse uueks väärtuseks vahemikus 0 kuni 255, sõltuvalt sellest, milline väärtus sellel algselt oli (0 kuni 1023).
  2. See funktsioon ütleb arduino kontrollerile, et ta adresseerib UART-liidese jadaporti, avab selle kirjutamiseks ja tellib kõik sündmused oma poolel (et saada andmeid).

Ülesanne 2 Valguskett:

https://www.tinkercad.com/things/cI4xWuqbIlG?sharecode=xRCKqZgWW0SIZ_SXlNbV7CS4cCeVor4eYmbsonKqVWQ

Ma kasutasin selle projekti jaoks:

  • 9 värvilist LEDi
  • 1 Arendusplaat
  • 14 Juhtmed
  • 1 Arduino Uno
  • 9 takisti
  • 1 Potentsiomeeter

Töö kirjeldus:

Alguses töötasime klassis välja potentsiomeetri põhimõtte. Daisy-chain režiimid lülitatakse “0-255” potentsiomeetri värava abil.

Näiteks punane muutub roheliseks ja roheline siniseks jne.

Kõik režiimid:

  1. Ainult roheline(green): Selles režiimis põlevad ainult rohelised LED-id.
  2. Ainult kollane(yellow): Selles režiimis põlevad ainult kollased LED-id.
  3. Ainult punane(red): Selles režiimis põlevad ainult punased LED-id.
  4. Multi: Selles režiimis lülitatakse sisse kolm LED-i ja 0,3 sekundit hiljem muutuvad järgmised kolm LED-i.
  5. Selles režiimis (offled) lülitatakse kõik LED-id kordamööda sisse, saadakse lambipirnide värvi sujuv muutus.

Kood:

int SENSOR_PIN = 0;
int SENSOR_VALUE = 0;

int LED_RED = 13;             
int LED_GREEN = 12;            
int LED_YELLOW = 11;  
int LED_RED2 = 10;
int LED_GREEN2 = 9;
int LED_YELLOW2 = 8;                         
int LED_RED3 = 7; 
int LED_GREEN3 = 6; 
int LED_YELLOW3 = 5; 

int VALUE_NEW;

void setup()
{
    pinMode(LED_RED, OUTPUT);
    pinMode(LED_GREEN, OUTPUT);
    pinMode(LED_YELLOW, OUTPUT);
    pinMode(LED_RED2, OUTPUT);
    pinMode(LED_GREEN2, OUTPUT); 
    pinMode(LED_YELLOW2, OUTPUT);
    pinMode(LED_RED3, OUTPUT);
    pinMode(LED_GREEN3, OUTPUT);
    pinMode(LED_YELLOW3, OUTPUT);
    Serial.begin(9600);
    
}

void green()
{
  digitalWrite(LED_GREEN, HIGH);
  digitalWrite(LED_GREEN2, HIGH);
  digitalWrite(LED_GREEN3, HIGH);
  delay(100);
  digitalWrite(LED_GREEN, LOW);
  digitalWrite(LED_GREEN2, LOW);
  digitalWrite(LED_GREEN3, LOW);
  delay(100);
}

void yellow()
{
  digitalWrite(LED_YELLOW, HIGH);
  digitalWrite(LED_YELLOW2, HIGH);
  digitalWrite(LED_YELLOW3, HIGH);
  delay(100);
  digitalWrite(LED_YELLOW, LOW);
  digitalWrite(LED_YELLOW2, LOW);
  digitalWrite(LED_YELLOW3, LOW);
  delay(100);
}


void red()
{
  digitalWrite(LED_RED, HIGH);
  digitalWrite(LED_RED2, HIGH);
  digitalWrite(LED_RED3, HIGH);
  delay(100);
  digitalWrite(LED_RED, LOW);
  digitalWrite(LED_RED2, LOW);
  digitalWrite(LED_RED3, LOW);
  delay(100);
}

void multi()
{
  digitalWrite(LED_GREEN, HIGH);
  digitalWrite(LED_YELLOW, HIGH);
  digitalWrite(LED_RED, HIGH);
  delay(150);
  digitalWrite(LED_GREEN, LOW);
  digitalWrite(LED_YELLOW, LOW);
  digitalWrite(LED_RED, LOW);
  delay(150);
  digitalWrite(LED_GREEN2, HIGH);
  digitalWrite(LED_YELLOW2, HIGH);
  digitalWrite(LED_RED2, HIGH);
  delay(150);
  digitalWrite(LED_GREEN2, LOW);
  digitalWrite(LED_YELLOW2, LOW);
  digitalWrite(LED_RED2, LOW);
  delay(150);
  digitalWrite(LED_GREEN3, HIGH);
  digitalWrite(LED_YELLOW3, HIGH);
  digitalWrite(LED_RED3, HIGH);
  delay(150);
  digitalWrite(LED_GREEN3, LOW);
  digitalWrite(LED_YELLOW3, LOW);
  digitalWrite(LED_RED3, LOW);
  delay(150);
}

void multi2()
{
  digitalWrite(LED_RED, HIGH);
  delay(150);
  digitalWrite(LED_RED, LOW);
  digitalWrite(LED_GREEN, HIGH);
  delay(150);
  digitalWrite(LED_GREEN, LOW);
  digitalWrite(LED_YELLOW, HIGH);
  delay(150);
  digitalWrite(LED_YELLOW, LOW);
  
  digitalWrite(LED_RED2, HIGH);
  delay(150);
  digitalWrite(LED_RED2, LOW);
  digitalWrite(LED_GREEN2, HIGH);
  delay(150);
  digitalWrite(LED_GREEN2, LOW);
  digitalWrite(LED_YELLOW2, HIGH);
  delay(150);
  digitalWrite(LED_YELLOW2, LOW);
  
  digitalWrite(LED_RED3, HIGH);
  delay(150);
  digitalWrite(LED_RED3, LOW);
  digitalWrite(LED_GREEN3, HIGH);
  delay(150);
  digitalWrite(LED_GREEN3, LOW);
  digitalWrite(LED_YELLOW3, HIGH);
  delay(150);
  digitalWrite(LED_YELLOW3, LOW);
  delay(150);
  }

void offled()
{
  digitalWrite(LED_GREEN, LOW);
  digitalWrite(LED_GREEN2, LOW);
  digitalWrite(LED_GREEN3, LOW);
  digitalWrite(LED_YELLOW, LOW);
  digitalWrite(LED_YELLOW2, LOW);
  digitalWrite(LED_YELLOW3, LOW);
  digitalWrite(LED_RED, LOW);
  digitalWrite(LED_RED2, LOW);
  digitalWrite(LED_RED3, LOW);
  
  
}

void loop()
{
  VALUE_NEW = analogRead(SENSOR_PIN);
  VALUE_NEW = map(VALUE_NEW,0,1023,1,6);
  if (VALUE_NEW==1)
  {
    green();
  }
  else if (VALUE_NEW==2)
  {
    yellow();
  }
    else if (VALUE_NEW==3)
  {
    red();
  }
  	else if (VALUE_NEW==4)
  {
    multi();
  }
  else if (VALUE_NEW==5)
  {
    multi2();
  }
  else if (VALUE_NEW==6)
  {
    offled();
  }
 
}
Valguskett

Potentsiomeetri kasutamine:

  • Audiotehnika: Potentsiomeetreid kasutatakse võimendites, mikserites ja muudes audioseadmetes helitugevuse ja tooniseadete reguleerimiseks.
  • Meditsiinis: Potentsiomeetrit kasutatakse meditsiinis regulaatorina, nt tilgutijaamades reguleerib see ravimi voolu patsiendile.