Temperatuuri andur, Servo mootor

4.1 Katse Temperatuuri andur

Kasutatud komponeendid

  • Adruino Uno R3 – 1
  • Breadboard Small – 1
  • Temperature Sensor [TMP36] – 1
  • Juhe – 3

Ühendamise skeem (www.tinkercad.com)

https://www.tinkercad.com/things/ep1Y2zNuc9a-41-katse?sharecode=gksq4V54AAVOZ8JHHwuix_zf7ITuCj5Gzb7oesUJJPs

Programm/kood kommentaridega

const int temperaturePin = 0;

void setup()
{
Serial.begin(9600);
}

void loop()
{

float voltage, degreesC, degreesF;
// kasutame analogRead(), mis tagastab sisendi väärtused vahemikul 0 ... 1023.
// koostasime getVoltage() funktsioon, mis tagastab pingeväärtus  0 ... 5,

voltage = getVoltage(temperaturePin);
degreesC = (voltage - 0.5) * 100.0;
// degreesC = voltage * 100.0;
degreesF = degreesC * (9.0/5.0) + 32.0;
Serial.print("voltage: ");
Serial.print(voltage);
Serial.print(" deg C: ");
Serial.print(degreesC);
Serial.print(" deg F: ");
Serial.println(degreesF);


//Ekraanil ilmub järgmine tekst: "voltage: 0.73 deg C: 22.75 deg F: 72.96"
delay(1000); // ootame 1 sek
}

float getVoltage(int pin)
{
return (analogRead(pin) * 0.004882814);
// teisendame pinge vahemikust 0,0 ... 5,0 V, vahemikku 0 до 1023.
}

4.2. Katse Servo kasutamine

Kasutatud komponeendid

  • Adruino Uno R3 – 1
  • Breadboard Small – 1
  • Micro Servo – 1
  • Juhe – (3-8)

Ühendamise skeem (www.tinkercad.com)

https://www.tinkercad.com/things/9Netyw98dOO-dazzling-wluff?sharecode=mCYy8gV1rUrDN3KVFUiFFaiyt_LXP8q-YHCR6SUOp5U

Programm/kood kommentaridega

#include  <Servo.h> 
Servo servo1; 
void setup()
{
servo1.attach(9);
void loop()
{
int position;
servo1.write(90); 
delay(1000); 
servo1.write(180); 
delay(1000);
servo1.write(0);
delay(1000);
for(position = 0; position < 180; position += 2)
{
servo1.write(position); 
delay(20); 
}
for(position = 180; position >= 0; position -= 1)
{ 
servo1.write(position);
delay(20); 
}
}

Temperatuuritundlik servolülitus

Töö kirjeldus

Koodi kirjutamine, virtuaalse skeemi loomine koodi testimiseks ja valmis tulemus päris skeemil.

Kasutatud komponeendid

  • Adruino Uno R3 – 1
  • Breadboard Small – 1
  • Micro Servo – 1
  • Temperature Sensor [TMP36] – 1
  • Photoresistor – 1
  • LED – 1 (white)
  • Takisti – 2
  • Juhe – 15

Töö protsess

Kood laaditakse Arduino plaadile. Koodi tööd juhivad fotoresistor ja temperatuuriandur. Fotoresistor jälgib valgustust ning kui on pime, lülitab sisse LED-i. Temperatuuriandur jälgib temperatuuri ning kui on külm, sulgeb ukse.

Ühendamise skeem (www.tinkercad.com)

https://www.tinkercad.com/things/7G9zoLjxi3l-temperatuuritundlik-servolulitus?sharecode=S8qa-yDT9NsGepTf4GlVbSdBUqBfVJ6L49besuACypE

Programm/kood kommentaridega

#include  <Servo.h> 
Servo servo1; 
const int sensorPin = 0;
const int temperaturePin = 1;
const int ledPin = 5;
int lightLevel, high = 0, low = 1023; 
void setup()
{
  pinMode(ledPin, OUTPUT);
  servo1.attach(6);
  Serial.begin(9600);
}
void loop()
{
  lightLevel = analogRead(sensorPin); 
  manualTune();  
  analogWrite(ledPin, lightLevel);
  Serial.print(lightLevel);  
  Serial.println("");          
  delay(1000); 
  int position;
servo1.write(90); 
delay(1000); 
servo1.write(180); 
delay(1000);
servo1.write(0);
delay(1000);
for(position = 0; position < 180; position += 2)
{
servo1.write(position); 
delay(20); 
}
for(position = 180; position >= 0; position -= 1)
{ 
servo1.write(position);
delay(20); 
}
  float voltage, degreesC, degreesF;
voltage = getVoltage(temperaturePin);
degreesC = (voltage - 0.5) * 100.0;
degreesF = degreesC * (9.0/5.0) + 32.0;
Serial.print("voltage: ");
Serial.print(voltage);
Serial.print(" deg C: ");
Serial.print(degreesC);
Serial.print(" deg F: ");
Serial.println(degreesF);
delay(1000);
}
float getVoltage(int pin)
{
return (analogRead(pin) * 0.004882814);
}
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);
}

Video

https://drive.google.com/file/d/1VD_hi3DUqkw2NA9TfGizLdup4s4foR6C/view?usp=sharing

Kasutamisvõimalused tavaelus.

Nutikodu süsteemis