Mechaniczny termometr

Mechaniczny termometr

INFORMACJA: Poniższy post nie wydostał się z Poczekalni :(

Mechaniczny termometr

Witam wszystkich czytelników. Kiedyś zrobiłem sobie prosty termometr. Temperatura była wyświetlana na wyświetlaczu LCD. Zacząłem go udoskonalać dodając automatyczne podświetlenie i alarm wysokiej temperatury. Dzisiaj wpadłem na pomysł aby zrobić coś podobnego tylko zamiast wyświetlacza użyć serwomechanizmu. Kiedyś ten pomysł wydawał mi się nie do wykonania. Ale teraz po 2 latach oswajania się i programowania w Arduino coś cię nauczyłem oraz podjąłem wyzwanie i tym oto sposobem powstał ten artykuł. Nie rozpisywałem się zbytnio aby artykuł był przejrzysty. Proszę o sugestie w komentarzach.

Potrzebne elementy :

Na płytkę CD należy nakleić podziałkę z temperaturą, którą możesz narysować lub wydrukować. Ważne jest to aby podziałka utworzyła kąt 180* czyli była narysowana na połowie płyty. Poszczególne temperatury powinny być umieszczone od siebie w równych odstępach.

Wzór :

 

termometr_cd

Podłączenie :

Bez tytułu

  1. Skrajne nóżki termometru należy podłączyć pod GND i Vcc, a środkową pod pin A0.

Należy pamiętać o podłączeniu termometru. Niewłaściwe podpięcie zasilania może go uszkodzić.

  1. Serwomechanizm jest podłączony pod pin 9.

Kalibracja :

Przed prawidłowym ustawieniem podziałki musisz w Serial porcie (monitorze szeregowym) odczytać aktualną temperaturę. Po odczytaniu temperatury możesz z kalibrować podziałkę z aktualnym położeniem serwa. ( Na serwomechanizm można nakleić strzałkę). Wartość serwa będzie wzrastała lub malała wraz z wartością podawanej aktualnie temperatury. Czas na program.

Program Arduino :

#include <Servo.h> // biblioteka

Servo myServo;

const int czujnikTemp = A0; // termometr pin A0
int odczyt;
int katObrotu; // kąt obrotu 

void setup() {
myServo.attach(9); // servo pin 9
 Serial.begin(9600);
}

void loop() {
 odczyt = analogRead(czujnikTemp);
float napiecie = (odczyt/1024.0) * 5.0;
 float temperatura = (napiecie - 0.5) * 100;

 katObrotu = map(temperatura, -10.0, 40.0, 0, 180); // temperatura a kąt obrotu
myServo.write(katObrotu);
 Serial.print("temperatura: "); // obecna temperatura
Serial.print(temperatura);
 Serial.println();
delay(1000); // opóźnienie
}

W programie w linijce :

katObrotu = map(temperatura, -10.0, 40.0, 0, 180);

została podana najniższa temperatura -10 a najwyższa 40. Jeśli temperatura otoczenia przekroczy te wartości to serwo będzie w lewym lub prawym skrajnym położeniu. Jeśli macie inną podziałkę możecie sobie zamienić te temperatury.

delay(1000); // opóźnienie

Ustawiłem 1 sekundę opóźnienia. Jeśli nie chcecie aby serwo cały czas się przesuwało to możecie ustawić np. na 5 sekund.

Zdjęcia :

IMG_20160411_144135 IMG_20160411_144143 IMG_20160411_144151

Miłej zabawy ;)

INFORMACJA: Poniższy post nie wydostał się z Poczekalni :(

Ocena: 1/5 (głosów: 1)

Podobne posty

Notifikator

Notifikator

Notyfikator - czyli urządzenie które poinformuje Was gdy coś się stanie: przyjdzie mail, zepsuje się…

4 komentarzy do “Mechaniczny termometr

  • ehhhhh, identyczna rzecz była na forbocie, nie wysiliłeś się. Gdybyś wgrał to na atmege, włożył w jakąś obudowę i dał wskazówkę to by było fajnie, ale tak to….

    Odpowiedz
  • Czyli nie wpadł na pomysł, tylko skopiował go z kursu ;) Na dodatek opublikował już kiedyś bardzo podobny wpis na majsterkowo.

    Odpowiedz
  • No i mamy plagiatora… skopiowane jest wszystko…
    Nawet perfidnie „zamazany” znaczek Strefy kursów z tarczy – jak się już korzysta z czyjejś pracy (nawet tak trywialnej jak tarcza) to wypadało by chociaż wspomnieć o tym

    i pomyśleć, że jeszcze za pierwszym razem pomagałem jemu w kodzie, a on po prostu ŹLE PRZEPISAŁ go z filmu…

    „Ale teraz po 2 latach oswajania się i programowania w Arduino coś cię nauczyłem oraz podjąłem wyzwanie”
    To jest wyzwanie?
    Przypisywać sobie cudzą pracę?

    Arduino… tak się po prostu nie robi…

    Odpowiedz

Odpowiedz

anuluj

Mechaniczny termometr

Nie przegap nowych projektów!

Zapisując się na nasz Newsletter będziesz miał pewność, że nie przegapisz żadnego nowego projektu opublikowanego w Majsterkowie!

Od teraz nie przegapisz żadnego projektu!

Masz uwagi?