Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Industriële technologie

PWM op Arduino: Complete Gids & Belangrijkste Functies

Arduino PWM Programmeren en Functies

Wat is PWM?

PWM (Pulse Width Modulation / Pulsbreedtemodulatie) is een techniek om een gemiddelde spanning/stroom te regelen door een blokgolf met variabele pulsbreedte te genereren. De verhouding van de "AAN"-tijd tot de totale periode heet de duty cycle (cyclisch arbeidsverhouding).

Formule: Duty Cycle (%) = (Ton / T) × 100%
Gemiddelde spanning Vavg = Vmax × Duty Cycle

Waarom PWM en Niet Een Weerstand?

  • Efficiëntie: Weerstanden verbranden overmaakt vermogen als warmte (P = I²R). PWM schakelt de stroom (via MOSFET/transistor) → minimale verliezen.
  • Kosten bij hoog vermogen: High-power weerstanden zijn duurder dan een PWM-driver.
  • Informatie-overdracht: Duty cycle kan informatie dragen (bijv. servo-positie, dimniveau).

Toepassingen van PWM

  1. Servomotoren: Hoek wordt bepaald door duty cycle (standaard 1–2 ms puls, 50 Hz).
  2. RGB LED's: Kleurmenging door R, G, B kanalen apart te dimmen.
  3. DC-DC Converters (Buck/Boost): Efficiënte spanningstransformatie.
  4. Motor snelheidsregeling: DC motoren, brushless (via ESC).
  5. Audio (Class-D versterkers), Zonnepaneel MPPT, Verwarmingsregeling.

PWM Frequentie: Belangrijk voor Soepel Gedrag

Te lage frequentie → motor trilt/jerkt (pulsen voelbaar). Te hoge frequentie → schakelverliezen in MOSFET, EMI. Kies frequentie afhankelijk van de mechanische tijdconstante van de belasting.

  • Arduino UNO standaard: ~490 Hz (pinnen 3, 9, 10, 11) en ~980 Hz (pinnen 5, 6).
  • Frequentie aanpasbaar via timer registers (geavanceerd).

PWM op Arduino UNO

PWM-pinnen: D3, D5, D6, D9, D10, D11 (gemarkeerd met ~).
Geen complexe code nodig: gebruik analogWrite(pin, waarde) met waarde 0–255 (8-bit resolutie).

Voorbeeld: LED Dimmen


const int LED_PIN = 9;  // PWM pin
int brightness = 0;
int fadeAmount = 5;

void setup() {
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  analogWrite(LED_PIN, brightness);
  brightness += fadeAmount;
  if (brightness <= 0 || brightness >= 255) {
    fadeAmount = -fadeAmount;  // Richting omkeren
  }
  delay(30);  // Smoothness
}

Belangrijke Functies Samengevat

FunctieBeschrijving
analogWrite(pin, 0-255)Genereert PWM signaal op PWM-pin (0=0%, 255=100%)
pinMode(pin, OUTPUT)Vereist voor analogWrite

Let Op

  • Alleen op pinnen met ~ symbool (D3,5,6,9,10,11 op UNO).
  • analogWrite werkt niet op analoge ingangen (A0–A5).
  • Voor echte analoge uitgang (0–5V continu) → DAC nodig (bijv. Due, ESP32, of extern DAC).
  • Inductieve lasten (motoren, relais) → vrijloopdiode (flyback diode) over de last plaatsen!

Industriële technologie

  1. Bouw Boeiende LCD Animaties & Games met Arduino UNO
  2. Python 3 naar Arduino UNO: Eenvoudige Commando Besturing en LED Demo
  3. Bouw een compacte FM-radio met Arduino Nano en RDA5807M
  4. Bouw een Raspberry Pi 3 & Arduino Laptop: Stap-voor-Stap Handleiding
  5. Efficiënte Arduino PWM Lezer & RC Ontvanger Decoder met Ingebouwde Fail-Safe
  6. Manufacturing Day: Evolutie, Impact, En Industrie Showcase
  7. EAM vs CMMS: Belangrijke verschillen en kernfuncties begrijpen
  8. Slimme Productie: Definitie, Voordelen en Implementatie
  9. IoT in de productie: Kernconcepten, toepassingen en praktijkvoorbeelden
  10. Arduino Sensoren: Typen, Toepassingen en Real-World Projecten
  11. Vier bewaarde patronen voor gebruiksgedefinieerde functies in C