etru_RU

Практика 4: Датчик температуры. Серводвигатель.

от автора

в

4.1 Katse Temperatuuri andur

https://www.tinkercad.com/things/eMQNWwdpaBt-spectacular-blad-wolt?sharecode=tZ6htGpDrWBvpL2CHekcsjxRwC0mg0gdJdu8pt9OGTg

Tööpõhimõte Katse TemperatuuriAndur:

  • Temperatuuri mõõtmise test temperatuurianduriga. Töötab temperatuurivahetusel.

Komponeendid Katse Temperatuuri andur :

  • Andur TMP36 ;
  • 4 juhtmed ;
  • 1 Breadboard Small ;
  • 1 Arduino Uno R3

Kood :

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

https://www.tinkercad.com/things/fVUOMDV3PGu-daring-krunk?sharecode=ep-kEr7SIrhKV9-YMJKFWLWvygHtkISSSQQqqnc6vOM

Servo kasutamine :

  • Hoiab toas temperatuuri.
  • Servomootorite kasutamine võimaldab temperatuuri automaatset reguleerimist selle alandamise või tõstmisega.
  • Sõltuvalt temperatuurist liigutada servo mootorit.
  • Alla 22 kraadi ja 22 kraadi viib servo asendisse 0 ja hakkab põlema sinine led. 35 kraadi ja kõrgem, viib servo 180 asendisse ja hakkab põlema punane led.

Servo komponeendid :

  • 2 LED ;
  • 2 resistor ;
  • 1 Andur TMP36 ;
  • 13 juhtmed ;
  • 1 Servo mootor ;
  • 1 Breadboard Small ;
  • 1 Arduino Uno R3

Servo kood :

#include  <Servo.h>
Servo servo1;
const int temperaturePin = 0;
int hot = 10; //горячо
int cold = 13; //холодно
void setup()
{
servo1.attach(9);
Serial.begin(9600);
pinMode(hot,OUTPUT);
pinMode(cold,OUTPUT);
}
void loop()
{
  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(3000);
  if (degreesC < 22)
  {
    servo1.write(0);
    digitalWrite(hot, LOW);
    digitalWrite(cold, HIGH);
    delay(2000);
  }
  else if (degreesC >= 35)
  {
    servo1.write(180);
    digitalWrite(hot, HIGH);
    digitalWrite(cold, LOW);
    delay(2000);
  }
  }
  float getVoltage(int pin)
  {
    return (analogRead(pin) * 0.004882814);
  }

Photo / Video :

Video :

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

Photo :

Kommentaatorid (uued võimalused) :

  • float voltage, degreesC, degreesF;
    // kasutame analogRead(), mis tagastab sisendi väärtused vahemikul 0 … 1023.
    // koostasime getVoltage() funktsioon, mis tagastab pingeväärtus  0 … 5,
  • #include  <Servo.h> // nii teavitame Arduino IDE-t vajadusest kasutada Servo.h teeki (подключаем дополнительную библиотеку)
  • Servo servo1; // Peame looma servo objekti nimega servo1 (объект управления сервоприводом)
  • servo1.write(position); // positsiooni muutmine

Комментарии

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

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