Tippen Sie auf Bildschirm-Overlay mit Arduino


mein Freund Ankush kaufte vor kurzem einige Nintendo DS Ersatz Touch Screens und Breakout Boards für ein "Arduino Motorrad RGB led" Projekt arbeitet er an. Nachdem er wenig Erfolg mit der Touch-Screen-Bibliothek und andere Tutorials online beschlossen wir, den Code selbst schreiben.

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);
}

In Verbindung stehende Artikel

Gewusst wie: zeichnen Sie auf einem Oszilloskop mit Arduino!

Gewusst wie: zeichnen Sie auf einem Oszilloskop mit Arduino!

Erstens, lets go über ein paar Grundlagen. Ein Oszilloskop ist ein Werkzeug zur Visualisierung von ändernden elektrischen Signalen.Oszilloskop: Oszillation (ändern), Umfang (Viewing). Zusammen bilden sie "Oszilloskop"!Ein Oszilloskop arbeitet du
Schulter tippen Sie auf Freunde gewinnt und Leute - ein arabische Amerikaner beeinflussen improvisiert Gruß

Schulter tippen Sie auf Freunde gewinnt und Leute - ein arabische Amerikaner beeinflussen improvisiert Gruß

Grüße kommen in vielen Varianten und Ausführungen. Aber haben Sie wirklich die Affekte, die Ihre Grüße auf andere wirken? Knüpfen Ihr Hallo Verbindungen? Hinterlassen Sie einen bleibenden Eindruck? Oder beende Ihre Gespräche nach einem zaghaften Händ
Skizze zum Atmega328P-PU auf ein Steckbrett mit Arduino Uno als Programmierer zu brennen

Skizze zum Atmega328P-PU auf ein Steckbrett mit Arduino Uno als Programmierer zu brennen

Es gibt bereits mehrere Instructables zum Arduino brennen skizzieren, Atmega328P-PU auf ein Steckbrett mit verschiedenen USB - UART Module. Aber wie die meisten solcher Module in China hergestellt werden, sie sind schlecht dokumentiert, falsch beschr
Gewusst wie: Tippen Sie auf ein großes Loch in einem großen PVC-Rohr

Gewusst wie: Tippen Sie auf ein großes Loch in einem großen PVC-Rohr

ich baue einen Vakuum Ofen Holz schnell austrocknen.  Ich werde mit einem 12" Durchmesser Stück Schedule 40 Rohr als einer Vakuumkammer. Diese Pfeife ist wirklich groß und schwer zu arbeiten.Ich musste ca. 9 Bohrungen in das Rohr und dann versiegeln,
2 Tippen Sie auf Cornelius Kegerator

2 Tippen Sie auf Cornelius Kegerator

mein Freund Nate und ich sind Heimbrauer. Es ist ein großes Hobby, das Ergebnisse in einem Produkt können Sie mit Freunden und Familie teilen. Wenn Sie nicht versucht haben, Ihr eigenes Bier brauen empfehle ich, dass Sie give it a Shot.Vor kurzem hab
Wie erstelle ein Keezer mit einem 3 Tippen Sie auf-Turm (gekühlt)

Wie erstelle ein Keezer mit einem 3 Tippen Sie auf-Turm (gekühlt)

ersten Dinge zuerst,Dies ist mein erster instructable und waren sehr begeistert, dieses Projekt zu veröffentlichen. Ich liebe diese Seite, wie ich ein Do-It-Yourselfer bis zum Maximum (fährt meine Frau verrückt... Lol) seien Sie bitte freundlich auf
4 Tippen Sie auf Keezer (Kegerator + Gefrierschrank)

4 Tippen Sie auf Keezer (Kegerator + Gefrierschrank)

Willkommen auf meiner ersten Instructable! Ich entschuldige mich, dass die Bilder ein bisschen in das Projekt starten.  Ich hatte einige Bilder des Projekts in einem Hause brauen-Forum gepostet und wurde gebeten, für eine "How to" Anleitung zum
Post auf Google Docs mit Arduino

Post auf Google Docs mit Arduino

Können direkt in das zu erhalten. Ich war Protokollierung Temperatur eines Raumes in einer Excel-Tabelle über Serial.print Befehle, dann importieren von CSV-Dateien und Blabla. Ich konnte nicht auf die Daten zugreifen, es sei denn, ich zu Hause war,
Kinder-Bildschirm-Timer mit Arduino

Kinder-Bildschirm-Timer mit Arduino

Dieses Gerät bietet einem Elternteil eine wirklich robuste Mittel zur Kontrolle der Bildschirm-Zeit (TV / DVD / console) ihre Kinder haben jeden Tag. Es funktioniert mit einer intelligenten Zeitschaltuhr steuert das HDMI-Signal zwischen einem Gerät u
Brauerei "Liste tippen Sie auf" Tafel Zeichen

Brauerei "Liste tippen Sie auf" Tafel Zeichen

als eine langfristige Homebrewer brauen ich oft ein paar Fässer für besondere Anlässe und Feiertage.  Zwar habe ich eine Kegorator, Jockey-Box und Schubladen voller Ausrüstung tippen, was ich nicht haben, war ein Hahn Liste Zeichen.  Modelliert nach
Wir tippen Sie auf Bäumen und machen Bernstein Nektar!

Wir tippen Sie auf Bäumen und machen Bernstein Nektar!

Die warmen, sonnigen Tagen haben viel von den angesammelten Schnee geschmolzen. Es ist wie as... schlammig wie wahrscheinlich Woodstock war... aus den Videos die ich gesehen habe. Mucky als Teufel, mit Schlamm, der nach unten von Ihrem Gulasch klebt,
Gewusst wie: verwenden Sie eine P10-Modul mit Arduino

Gewusst wie: verwenden Sie eine P10-Modul mit Arduino

Hallo alle, in diesem Projekt wollen wir lernen, wie man ein Modul P10 mit Arduino Nano verwenden. Du musst ein P10-Modul und ein Netzteil kaufen. Es gibt einige guten Informationen auf der Freetronics.Schritt 1: P10 Modul Merkmale:32 x 16 high-Brigh
Gewusst wie: verwenden Sie NeoPixel 16 Ring mit Arduino Uno

Gewusst wie: verwenden Sie NeoPixel 16 Ring mit Arduino Uno

Heute werde ich Ihnen zeigen, wie NeoPixel Ring mit Arduino Uno eine sehr einfache Art zu verwenden. Wie Sie wissen, wir lieben bunte LED, es wurde sogar auf einem Ring festgestellt!Die Notwendigkeit Liste:(1) Arduino Uno(2) NeoPixel Ring 16xWS2812 (
Tippen Sie auf & spielen

Tippen Sie auf & spielen

Das Mickey-Mouse-Projekt ist mit dem Ziel, mit dem Benutzer interagieren. Wenn die Handfläche (leitfähiges Material darauf angewendet) aus Kunststoff geformt Objekts - Mickey Mouse ist durch den Benutzer Mickey Mouse sprechen wird, so dass ein Gefühl