Stap 5: Code
code afgeleid van http://owenmundy.com/blog/2010/05/fading-an-led-with-pwm-and-a-potentiometer/int RpotPin = 0; Analoge invoer pin die is gekoppeld aan de rode potentiometer
int RpotValue = 0; waarde van de pot leest
int GpotPin = 1; Analoge invoer pin die is gekoppeld aan de groene potentiometer
int GpotValue = 0; waarde van de pot leest
int BpotPin = 2; Analoge invoer pin die is gekoppeld aan de blauwe potentiometer
int BpotValue = 0; waarde van de pot leest
int Rled = 9; PWM-pin die de rode LED brandt.
int Gled = 10; PWM-pin die de groene LED brandt.
int Bled = 11; PWM-pin die de blauwe LED brandt.
/*
Het circuit:
* LCD RS pin naar digitale pin 13
* LCD inschakelen pin naar digitale pin 12
* LCD D4 pin naar digitale pin 5
* LCD D5 pin naar digitale pin 4
* LCD D6 pin naar digitale pin 3
* LCD D7 pin naar digitale pin 2
* LCD R/W pen op grond
* 10K Ohm weerstand:
* eindigt aan + 5V en ground
* wisser naar LCD VO pin (pin 3)
*/
de code van de bibliotheek omvatten:
#include < LiquidCrystal.h >
initialiseren van de bibliotheek met de nummers van de pennen van de interface
LiquidCrystal lcd (13, 12, 5, 4, 3, 2);
VOID Setup {}
verklaren van de rode, groene en blauwe led pinnen als een uitgangen:
pinMode (Rled, uitvoer);
pinMode (Gled, uitvoer);
pinMode (Bled, uitvoer);
de LCD's aantal kolommen en rijen instellen:
LCD.begin (16, 2);
Een bericht op het LCD-scherm afdrukt.
LCD.Print ("rood groen blauw");
}
void loop {}
RpotValue = analogRead(RpotPin); luiden naar de waarde van de pot
analogWrite (Rled, RpotValue/4); PWM de rode LED met de waarde van de pot (gedeeld door 4 om te passen in een byte)
delay(10); wacht 10 milliseconden voordat de next-lus
GpotValue = analogRead(GpotPin); luiden naar de waarde van de pot
analogWrite (Gled, GpotValue/4); PWM de groene LED met de waarde van de pot (gedeeld door 4 om te passen in een byte)
delay(10); wacht 10 milliseconden voordat de next-lus
BpotValue = analogRead(BpotPin); luiden naar de waarde van de pot
analogWrite (Bled, BpotValue/4); PWM de blauwe LED met de waarde van de pot (gedeeld door 4 om te passen in een byte)
delay(10); wacht 10 milliseconden voordat de next-lus
Stel de cursor op de kolom 0, lijn 1
(Opmerking: lijn 1 is de tweede rij, aangezien tellen met 0 begint):
lcd.setCursor (0, 1);
LCD.Print(RpotValue/4);
delay(140);
lcd.setCursor (6, 1);
LCD.Print(GpotValue/4);
delay(140);
lcd.setCursor (12, 1);
LCD.Print(BpotValue/4);
delay(140);
}