Der unten angegebene Code dient zur Arbeit mit RBG geführt ist. Denn es ausgezeichnete koordiniere Lesungen gibt und sehr einfach ist einzurichten, kann es für viel mehr als nur led verwendet werden. Der Code hier aber soll die x-Achse verwenden, um den Farbton zu steuern und die y-Achse die Helligkeit steuern für led-ist schließlich unter Ankush Motorrad positioniert.
Beim Arbeiten mit diesen Touchscreens zeigte sich schnell, dass sie nicht alle gleich. Jeder Touchscreen gibt unterschiedliche maximalen und minimalen Messwerte für die X- und Y-Achse, also einige Optimierungen am Code für Kalibrierungszwecke benötigt wird. Einige haben sogar X und Y Werte umgekehrt die im Code oder einfach durch Drehen Ihr Touch-Screen fixiert werden kann.
Was ist nötig, um die Touch-Screens zu optimieren?
-Finden Sie Ihre X- und Y-Min-/Max-Werte. (verwenden Sie xPos / yPos)
-Berechnen Sie Ihr Angebot
und das war es eigentlich!
Nintendo DS Touchscreen:
http://www.Amazon.com/eForCity-Touch-Screen-Nintendo-DS-Lite/DP/B0010LXJYC
https://www.SparkFun.com/Products/8977
Touch Screen Breakout
https://www.SparkFun.com/Products/9170
<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>
/*
* Erstellt von: Ankush Verma & Cory Malantonio
* Kushy04
* cgmalantonio
*
* Y - analoge 0
* X + analog 1
* Y + analog 2
* X - analog 3
*
*/
Int xVal = 0;
Int yVal = 0;
Int TouchX;
Int empfindlich;
Int xPos;
Int yPos;
Int RedPin = 11;
Int GreenPin = 9;
Int BluePin = 10;
Int-rL = 0;
Int-bL = 0;
Int gL = 0;
void setup()
{
PinMode (RedPin, Ausgang);
PinMode (BluePin, Ausgang);
PinMode (GreenPin, Ausgang);
Serial.Begin(38400);
}
void loop()
{
Richten Sie die analogen Pins in Vorbereitung für das Lesen des Y-Wert
PinMode (A1, Eingabe); Analogen Pin 1
PinMode (A3, Eingabe); Analogen Pin 3
PinMode (A0, OUTPUT); Analogen Pin 0
DigitalWrite (A0, LOW); Analogen Pin 0 als GND Verbindung
PinMode (A2, OUTPUT); Analogen Pin 2
DigitalWrite (A2, HIGH); Analogen Pin 2 als + 5V Anschluss
yVal = AnalogRead (1); Lesen Sie den Y-Wert
Richten Sie die analogen Pins in Vorbereitung für das Lesen des Y-Wert
über den touchscreen
PinMode (A0, Eingabe); Analogen Pin 0
PinMode (A2, Eingabe); Analogen Pin 2
PinMode (A1, OUTPUT); Analogen Pin 1
DigitalWrite (A1, LOW); Analogen Pin 1 GND Verbindung
PinMode (A3, OUTPUT); Analogen Pin 3
DigitalWrite (A3, hoch); Analogen Pin 3 als + 5V Anschluss
xVal = AnalogRead (0); Lesen Sie den X-Wert
Wenn Touchscreen nicht gedrückt wird, ruht er auf bestimmte Koordinaten
Dadurch wird sichergestellt, dass die Koordinaten im Ruhezustand nicht berechnet bekommen
TouchX = xVal;
Wenn (TouchX > 20 & & TouchX < 900) {}
Hier ist wo Sie benötigen Ihre mindestens X Wert und Reichweite von X
(TouchX, minimale x Bereich von X, Bekehrte zum 0-1024)
xPos = Karte (TouchX, 108.0, 899.0, 0, 1024);
xPos = beschränken (xPos, 0, 1024);
}
Heikles = yVal;
Wenn (empfindlich > 20 & & empfindlich < 900) {}
Hier ist, wo Sie Ihre minimale Y-Wert und die Palette von Y brauchen
(empfindlich, minimale y, Auswahl an y, konvertiert in 0-1024)
yPos = Karte (empfindlich, 145,0, 892.0, 0, 1024);
yPos = beschränken (yPos, 0, 1024);
}
Float Helligkeit;
Helligkeit = Int (yPos) / 1024.0;
Dieses schöne Stück wandelt drei 255 Werte 0-1024
Int-Wert = Int (xPos);
Float RGBslider = (Float) Wert/1024.0;
RedLevel schweben = 128,0 * (2 * cos (2 * PI * (RGBslider + 0,125)));
Float GreenLevel = 128,0 * (2 * cos (2 * PI * (RGBslider + 0,375)));
Float BlueLevel = 128,0 * (2 * cos (PI * RGBslider));
ermöglicht die Farbwerte Helligkeitswert betroffen zu sein
RedLevel RedLevel = * (Helligkeit);
GreenLevel = GreenLevel * (Helligkeit);
BlueLevel = BlueLevel * (Helligkeit);
/*
Wenn (RedLevel > 255) RedLevel = 255;
Wenn RedLevel (RedLevel < 0) = 0;
Wenn (GreenLevel > 255) GreenLevel = 255;
Wenn (GreenLevel < 0) GreenLevel = 0;
Wenn (BlueLevel > 255) BlueLevel = 255;
Wenn (BlueLevel < 0) BlueLevel = 0;
*/
macht dasselbe wie Abschnitt oben auskommentiert
RedLevel = beschränken (RedLevel, 0, 255);
GreenLevel = (GreenLevel, 0, 255) beschränken;
BlueLevel = (BlueLevel, 0, 255) beschränken;
RGB led wird verwendet Arbeit nach hinten
0 = auf || 255 = aus
Dies kehrt Normalwerte
rL = 255 - int(redLevel);
bL = 255 - int(blueLevel);
gL = 255 - int(greenLevel);
AnalogWrite (RedPin, rL);
AnalogWrite (GreenPin, gL);
AnalogWrite (BluePin, bL);
Serial.Print(Brightness);
Serial.Print(":");
Serial.Print(RL);
Serial.Print(".");
Serial.Print(GL);
Serial.Print(".");
Serial.println(BL);
Serial.Print(xPos);
Serial.println(yPos);
Delay(10);
}