13ó2. tanév

Mikrovezérlők

A mikrovezérlők az ipari és beágyazott rendszerek alapvető építőelemei. Ezek segítségével szenzoradatokat dolgozhatunk fel és vezérelhetünk különböző eszközöket.

Alapok

Mi az a mikrovezérlő?

A mikrovezérlő (Microcontroller Unit – MCU) egy olyan integrált áramkör, amely tartalmaz processzort (CPU), memóriát (RAM, Flash), valamint bemeneti/kimeneti portokat (GPIO). Célja, hogy valós idejű vezérlési feladatokat lásson el.

Hol használják?

Ismertebb platformok

Szenzorok

Szenzorok és bemenetek

A mikrovezérlők egyik legfontosabb feladata a szenzoradatok feldolgozása. A szenzorok lehetnek digitális vagy analóg típusúak.

Az analóg bemenetek ADC (Analog to Digital Converter) segítségével alakítják digitális értékké a mért feszültséget.

Projekt

Arduino mérő és vezérlő rendszer – Részletes bemutatás

A projektet Arduino UNO platformon készítettem, a fejlesztéshez a Wokwi online szimulátort használtam. A programozás C/C++ alapú Arduino nyelven történt.

Fejlesztési környezet

A program működési logikája

A rendszer két fő részből áll:

A kód részletes magyarázata

const int buttonPin = 2;      // Nyomógomb digitális bemenet
const int ledPin = 9;         // LED digitális kimenet
const int sensorPin = A0;     // Potenciométer analóg bemenet

bool measuring = false;       // Mérési állapot
bool lastButtonState = HIGH;  // Előző gombállapot

Konstansok: Meghatározzák melyik lábra mi csatlakozik. measuring: Logikai változó, amely tárolja, hogy aktív-e a mérési mód. lastButtonState: Segít az élérzékelésben (állapotváltozás figyelése).

void setup() {
  pinMode(buttonPin, INPUT_PULLUP);
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
}

setup() csak egyszer fut le induláskor.

void loop() {

  bool buttonState = digitalRead(buttonPin);

  if (buttonState == LOW && lastButtonState == HIGH) {
    measuring = !measuring;
    Serial.println("Allapot valtas!");
  }

  lastButtonState = buttonState;

A loop() folyamatosan ismétlődik.

  if (measuring) {
    int sensorValue = analogRead(sensorPin);

    Serial.println(sensorValue);

    if (sensorValue > 500) {
      digitalWrite(ledPin, HIGH);
    } else {
      digitalWrite(ledPin, LOW);
    }
  }
}

analogRead() 0–1023 közötti értéket ad vissza. Ez az ADC (Analog-Digital Converter) működésének eredménye.

Ha a potenciométer értéke meghaladja az 500-as küszöböt, a LED bekapcsol. Ellenkező esetben kikapcsol.

Kapcsolási rajz

PLC garázskapu program
Tapasztalat

Nehézségek és tanulságok

A projekt segített megérteni az alapvető beágyazott rendszerek működését, valamint a szenzoradat-feldolgozás és vezérlés kapcsolatát.