Arduino schéma - arduino.sk

Otáčkomer na platforme Arduino Uno

Kompletné projekty s návodom a zdrojovým kódom
Príspevky: 69
Registrovaný: Uto 23. Dec 2014 2:15:50

Otáčkomer na platforme Arduino Uno

Poslaťod martinius96 » Ned 01. Sep 2019 4:44:18

Arduino je platforma všehochuti. Prostredníctvom nej je možné vytvárať jednoduché blikače, ale aj zložité systémy pre pokročilejšiu automatizáciu. Vďaka rôznym zberniciam je možné Arduino rozšíriť aj o použitie rôznych periférii. Dnes si bližie priblížime infračervený senzor prekážky a jeho využitie pre otáčkomer. Princíp senzora je veľmi jednoduchý. Obsahuje 2 diódy, vysielaciu a prijímaciu diódu.

Prijímacia IR dióda je pripojená priamo na 5V digitálny výstup, pričom je možné použiť potenciometer pre ovládanie citlivosti (vzdialenosti objektu) na akú bude reagovať prijímacia dióda. Modul je napájaný na 5V z Arduina, slúži aj na napájanie vysielacej IR diódy, ktorá vysiela svetlo permanentne s frekvenciou 38kHz na vlnovej dĺžke 950nm/940nm (závisí od použitej diódy). Modul sa dá nájsť u predajcov (Aliexpress a iných) pod názvom KY-032, respektíve Obstacle Sensor. Existuje niekoľko verzií, použil som prvú verziu, ktorá je skonštruovaná veľmi jednoducho.
Obrázok
Existujú aj dokonalejšie verzie, ktoré majú viacero potenciometrov, ovládanie zisku, lepšiu konštrukciu, EN signál a pod. (KY-032 ver. 2)
Obrázok
Senzor reaguje na prekážku v určitej vzdialenosti (nastavená potenciometrom) 2-40 cm. Pri zázname prekážky sa privedie 5V signál na výstupný vývod modulu, ktorý spracuje Arduino. Jednou z (ne)výhod IR diód je, že svetlo sa dokáže odraziť od leských plôch, To znamená, že lesklú plochu zaznamená na menšiu vzdialenosť, ako plochu matnú. To vo mne vzbudilo myšlienku použiť tento senzor inak a to ako otáčkomer. Na matnú plochu - remenicu kľukového hriadeľa som nalepil prúžok pásky široký asi 1cm, prípadne je dobré použiť aj alobal, má lepšie reflexné vlastnosti svetla. Intenzitu zisku som nastavil tak, aby mi v konštantnej vzdialenosti od remenice modul reagoval iba na pásku pri jej prechode popred modul pri každej otáčke kľukového hriadeľa, nie na remenicu samotnú.

Arduino v prerušení načítava signál z modulu a pripočítava premennú, ktorá sa raz za sekundy vyhodnotí vzorcom, ktorý prepočíta načítané signály na počet signálov za minútu. Vďaka tomu je možné určiť počet otáčok kľukového hriadeľa (motora) za minútu. Refresh displeja je každú sekundu. Otáčky sú neskôr vyobrazené na LCD znakovom displeji 20x4 s I2C prevodníkom. Vďaka prevodníkom stačí k displeju na prepojenie 4 vodiče. Napájanie (5V), zem (GND), hodinový signál (SCL), dáta (SDA). Otáčkomer je možné použiť na rôzne stroje, sledovanie otáčok remeníc traktorov, kombajnov, ale aj v priemysle pre monitorovanie procesov, prevádzky a aktivity strojov.

Schéma zapojenia pre otáčkomer s displejom a infračerveným modulom KY-032:
Obrázok
Výsledná reprezentácia môže vyzerať napríklad takto:
Obrázok
Program pre Arduino (Uno)
Kód: Vybrať všetko
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F, 20, 4);     //alebo 0x27 --> I2C adresy sa mozu roznit
int rev = 0;
int rpm;
usnigned long oldtime = 0;
usnigned long time;

void isr() {
  rev++;
}

void setup() {
  lcd.begin();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("-----ZETOR 4011-----");
  attachInterrupt(digitalPinToInterrupt (2), isr, RISING); //interrupt pin
}

void loop() {
  delay(1000);
  detachInterrupt(digitalPinToInterrupt(2));     
  time = millis() - oldtime;    //rozdiel casov
  rpm = (rev / time) * 60000;   //vyrataj otacky/min
  oldtime = millis();           //uloz aktualny cas
  rev = 0;
  lcd.setCursor(0, 1);
  lcd.print(rpm);
  lcd.print(" ot/min   ");
  attachInterrupt(digitalPinToInterrupt (2), isr, RISING);
}

Viac o projekte je možné nájsť na adrese: https://arduino.php5.sk/otackomer.php

Späť na Hotové projekty