Mikróvezérlők alapjai
A mikróvezérlő (MCU) egy egychipes számítógép, amely tartalmaz processzort, memóriát és be/kimeneti perifériákat. Ipari és beágyazott rendszerekben széles körben alkalmazzák.
Arduino Uno jellemzői
| Jellemző | Érték |
|---|---|
| Processzor | ATmega328P (8-bit) |
| Órajel | 16 MHz |
| Flash memória | 32 KB |
| SRAM | 2 KB |
| Digitális I/O lábak | 14 (6 PWM) |
| Analóg bemenetek | 6 (10-bites ADC) |
| Üzemi feszültség | 5V |
Arduino programozás alapjai
A program szerkezete
Minden Arduino program két fő részből áll: a setup() egyszer fut le indításkor, a loop() pedig folyamatosan ismétlődik.
void setup() { // Egyszer fut le indításkor pinMode(13, OUTPUT); // LED pin kimenetnek Serial.begin(9600); // Soros kommunikáció } void loop() { // Folyamatosan ismétlődik digitalWrite(13, HIGH); // LED be delay(1000); // 1 másodperc várakozás digitalWrite(13, LOW); // LED ki delay(1000); }
Analóg olvasás
C++ · Analóg feszültség mérésint ertek = analogRead(A0); // 0–1023 közötti érték float feszultseg = ertek * (5.0 / 1023.0); Serial.println(feszultseg);
Fontosabb GPIO függvények
| Függvény | Leírás | Példa |
|---|---|---|
| pinMode() | Pin irány beállítása | pinMode(7, INPUT) |
| digitalWrite() | Digitális kimenet írása | digitalWrite(7, HIGH) |
| digitalRead() | Digitális bemenet olvasása | digitalRead(2) |
| analogRead() | Analóg bemenet olvasása (0–1023) | analogRead(A0) |
| analogWrite() | PWM jel generálása (0–255) | analogWrite(9, 128) |
| delay() | Várakozás milliszekundumban | delay(500) |
Szenzorkezelés
DHT11 – Hőmérséklet és páratartalom szenzor
C++ · DHT11 szenzor kezelés#include <DHT.h> #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); dht.begin(); } void loop() { float homerseklet = dht.readTemperature(); float paratartalom = dht.readHumidity(); Serial.print("Hőmérséklet: "); Serial.print(homerseklet); Serial.println(" °C"); Serial.print("Páratartalom: "); Serial.print(paratartalom); Serial.println(" %"); delay(2000); }
Projektfeladat
A projektet egy vasúti sorompó működését reprezentálja – azon belül is a sorompó fel-le mozgatása szervómotor segítségével, és a lámpa megfelelő működése Arduino segítségével.
A projekthez 3D nyomtató segítségével nyomtattam ki az egyes elemeket: a vasúti átkelőhely alapját, a motornak egy kisebb dobozt – ami megtartja a motort és rácsatlakoztatható a sorompó –, valamint a lámpát.