Arduino Lantern ljus (5 / 6 steg)
Steg 5: kod
koden från http://owenmundy.com/blog/2010/05/fading-an-led-with-pwm-and-a-potentiometer/int RpotPin = 0; Analog ingång pin som röda potentiometern är kopplad till
int RpotValue = 0; värdet läsa från potten
int GpotPin = 1; Analog ingång pin som gröna potentiometern är kopplad till
int GpotValue = 0; värdet läsa från potten
int BpotPin = 2; Analog ingång pin som blå potentiometern är kopplad till
int BpotValue = 0; värdet läsa från potten
int Rled = 9. PWM stift som den röda lampan är tänd.
int Gled = 10; PWM stift som den gröna lampan är tänd.
int Bled = 11; PWM stift som den blå lampan är tänd.
/*
Krets:
* LCD RS stift till digital stift 13
* LCD aktivera stift till digital stift 12
* LCD D4 stift till digital stift 5
* LCD D5 stift till digital stift 4
* LCD D6 stift till digital stift 3
* LCD D7 stift till digital stift 2
* LCD R/W pinnen till jord
* 10K motstånd:
* avslutar till + 5V och jord
* torkar till LCD-VO pin (stift 3)
*/
inkludera bibliotek-koden:
#include < LiquidCrystal.h >
initiera bibliotek med numrerar av gränssnittet stiften
LiquidCrystal lcd (13, 12, 5, 4, 3, 2);
void setup() {
förklarar röda, gröna och blå led stift som ett resultat:
pinMode (Rled, OUTPUT);
pinMode (Gled, OUTPUT);
pinMode (Bled, OUTPUT);
Ange den LCD antal kolumner och rader:
LCD.BEGIN (16, 2);
Skriv ut ett meddelande till LCD-skärmen.
LCD.Print ("röd grön blå");
}
void loop() {
RpotValue = analogRead(RpotPin); läsa värdet pot
analogWrite (Rled, RpotValue/4); PWM röd lysdiod med potten värdet (dividerat med 4 att passa i en byte)
Delay(10); vänta 10 millisekunder innan nästa slingan
GpotValue = analogRead(GpotPin); läsa värdet pot
analogWrite (Gled, GpotValue/4); PWM grön LED med potten värdet (dividerat med 4 att passa i en byte)
Delay(10); vänta 10 millisekunder innan nästa slingan
BpotValue = analogRead(BpotPin); läsa värdet pot
analogWrite (Bled, BpotValue/4); PWM blå LED med potten värdet (dividerat med 4 att passa i en byte)
Delay(10); vänta 10 millisekunder innan nästa slingan
ställa markören till kolumn 0, linje 1
(Obs: linje 1 är den andra raden, sedan räknar börjar med 0):
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);
}