Touch scherm Overlay met Arduino


mijn vriend Ankush kocht een Nintendo DS-vervanging onlangs Touch schermen en breakout boards voor een "Arduino motorfiets RGB led" project werkt hij aan. Na het met weinig succes met de Touch Screen-bibliotheek en andere tutorials online besloten hebben we om te schrijven van de code zelf.

De code hieronder is ontworpen voor gebruik met de RBG led's. Aangezien het geeft uitstekende coördinaat lezingen en zeer eenvoudig is te installeren, kan het worden gebruikt voor veel meer dan alleen led van. De code hier echter is ontworpen voor het gebruik van de X-as om te controleren de tint en de Y-as om te controleren de helderheid voor leidde uiteindelijk onder de Ankush motorfiets is geplaatst.

Bij het werken met deze touchscreens, het werd snel duidelijk dat ze niet zijn allemaal hetzelfde. Elk scherm van de Aanraking geeft verschillende maximale en minimale lezingen voor zowel de X- en Y-as dus wat tweaken aan de code is nodig voor calibratie doeleinden. Sommige hebben zelfs omgekeerd X en Y lezingen die kunnen worden vastgesteld in code, of gewoon door het draaien van uw touchscreen.

Wat is nodig om te tweaken van de touch-screens?
-Vind uw minimum/maximum aantal waarden van X en Y. (gebruik xPos / yPos)
-Bereken uw bereik
en dat is het eigenlijk!

Scherm van de aanraking van de Nintendo DS:
http://www.Amazon.com/eForCity-touch-screen-Nintendo-DS-Lite/DP/B0010LXJYC
https://www.Sparkfun.com/products/8977
Touch scherm Breakout
https://www.Sparkfun.com/products/9170

<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>
/*
* Gemaakt door: Ankush Verma & Cory Malantonio
* Kushy04
* cgmalantonio
*
* Y - op analoge 0
* X + analoge 1
* Y + analoge 2
* X - naar analoge 3
*
*/

int xVal = 0;
int yVal = 0;
int touchX;
int gevoelig;
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, OUTPUT);
pinMode (bluePin, OUTPUT);
pinMode (greenPin, OUTPUT);
Serial.begin(38400);
}

void loop
{
Instellen van de analoge pinnen in voorbereiding voor het lezen van de Y-waarde
pinMode (A1, INPUT); Analoge pin 1
pinMode (A3, INPUT); Analoge pin 3
pinMode (A0, uitvoer); Analoge pin 0
digitalWrite (A0, laag); Analoge pin 0 als GND verbinding
pinMode (A2, uitvoer); Analoge pin 2
digitalWrite (A2, hoge); Analoge pin 2 als + 5V verbinding
yVal = analogRead (1); Lees de Y-waarde

Instellen van de analoge pinnen in voorbereiding voor het lezen van de Y-waarde
van de touchscreen
pinMode (A0, INPUT); Analoge pin 0
pinMode (A2, INPUT); Analoge pin 2
pinMode (A1, uitvoer); Analoge pin 1
digitalWrite (A1, laag); Analoge pin 1 als GND verbinding
pinMode (A3, uitvoer); Analoge pin 3
digitalWrite (A3, hoge); Analoge pin 3 als + 5V verbinding
xVal = analogRead (0); Lees de x-waarde

Wanneer de touchscreen niet is ingedrukt berust het op bepaalde coördinaten
Dit zorgt ervoor dat de coördinaten in rust niet krijgen berekend
touchX = xVal;
Als (touchX > 20 & & touchX < 900) {}

Hier is waar u moet uw minimum X waarde en bereik van X
(touchX, minimum x, bereik van x, bekeerlingen tot 0-1024)
xPos = kaart (touchX, 899.0, 0, 108.0, 1024);

xPos = beperken (xPos, 0, 1024);
}
Gevoelig = yVal;
Als (touchY > 20 & & touchY < 900) {}

Hier is waar je moet uw minimale Y-waarde en het bereik van de Y
(lichtgeraakt, minimale y, y, aantal converteert naar 0-1024)
yPos = kaart (lichtgeraakt, 145,0, 892.0, 0, 1024);

yPos = beperken (yPos, 0, 1024);
}

float helderheid;
helderheid = int (yPos) / 1024.0;
Dit mooie stukje zet 0-1024, in drie 255 waarden
int waarde = int (xPos);
zweven RGBslider = (float) waarde/1024.0;
zweven redLevel = 128.0 * (2 * cos (2 * PI * (RGBslider + 0,125)));
zweven greenLevel = 128.0 * (2 * cos (2 * PI * (RGBslider + 0.375)));
zweven blueLevel = 128.0 * (2 * cos (PI * RGBslider));

van kleur worden beïnvloed door de waarde voor helderheid-waarden zijn toegestaan
redLevel = redLevel * (helderheid);
greenLevel = greenLevel * (helderheid);
blueLevel = blueLevel * (helderheid);

/*
Als (redLevel > 255) redLevel = 255;
Als (redLevel < 0) redLevel = 0;
Als (greenLevel > 255) greenLevel = 255;
Als (greenLevel < 0) greenLevel = 0;
Als (blueLevel > 255) blueLevel = 255;
Als (blueLevel < 0) blueLevel = 0;
*/
doet hetzelfde als sectie uitgecommentarieerd boven
redLevel = beperken (redLevel, 0, 255);
greenLevel = beperken (greenLevel, 0, 255);
blueLevel = beperken (blueLevel, 0, 255);

RGB led being gebruikt werk achteruit
0 = op || 255 = off
Dit keert de normale waarden
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);
}

Gerelateerde Artikelen

Kinderen scherm Timer met Arduino

Kinderen scherm Timer met Arduino

Dit apparaat geeft een ouder een echt robuust middel om te controleren van de hoeveelheid scherm-tijd (TV / DVD / console) hun kinderen hebben elke dag. Het werkt door het hebben van een intelligente tijd-switch die het HDMI signaal doorgeven tussen
Virtuele touch scherm spel met behulp van Zybo

Virtuele touch scherm spel met behulp van Zybo

Virtuele Touch-screen Game hands-on leerprogramma voor de Zybo zal bevatten stapsgewijze instructies voor het aanpassen van uw hardware te emuleren scherm van de aanraking op eenvoudige inch TFT-scherm met behulp van camera en vinger detectie.Vereist
Computer scherm Nachtlampje met Arduino

Computer scherm Nachtlampje met Arduino

Gebruik de Starter schild uit fireflyelectronix.com de Arduino Uno en verwerking om een Computer scherm Night Light!Stap 1: De Arduino ProgramIn dit voorbeeld ben ik met behulp van het schild van de Starter van fireflyelectronix.comHet schild van de
TFT Touch gebaseerd UI met Arduino UNO

TFT Touch gebaseerd UI met Arduino UNO

I, m dol van TFT LCD-display. Dus besloten heb ik om het te leren. Er was al bibliotheek beschikbaar voor dit werk. Maar ik vond de meeste van hen was voor verschillende controllers. Er was een vent op intructables die deze bibliotheken voor spfd5408
Touch scherm koffietafel DIY met 32-inch TV en low-cost CCD sensor

Touch scherm koffietafel DIY met 32-inch TV en low-cost CCD sensor

UPDATE 04/04/2016: Multipoint software + Emulating NES video/foto's + OPTION_7 punt en klik + snelheidstest optie videoUPDATE 24/03/2016: CCD sensor reverse Engineering + met behulp van 2 CCD sensoren Laser Gravure vectorbestanden + Retropie spelenHa
Arduino Touch scherm ruimteregeling

Arduino Touch scherm ruimteregeling

Hey iedereen, ik eindelijk klaar met mijn touch paneel voor mijn slaapkamer muur en ik ben hier om u te tonen hoe ik het gemaakt. Helaas zijn niet geïnstalleerd in mijn muur nog zoals ik verhuizen zou en niet wil meer gaten in mijn muren, maar zijn k
Hookup een LCD-scherm aan een Arduino in 6 seconden met 3, niet 6 pins

Hookup een LCD-scherm aan een Arduino in 6 seconden met 3, niet 6 pins

het toevoegen van een LCD-scherm aan de Arduino projecten kan echte waarde toevoegen de kosten doen dus kan echter aanzienlijk. Niet een financiële kosten - u kunt oprapen 16 (tekens) x 2 (rijen) LCD voor zo weinig zoals £3,50. De kosten is het telle
DIY TV LCD-scherm met Arduino en Smart Remote

DIY TV LCD-scherm met Arduino en Smart Remote

In de volgende volgende stappen, u maakt een DIY "TV" met code voor een smart remote afstandsbediening,, en eigenlijk video's afspelen en de slimme afstandsbediening zelfs mogelijk verbinding te maken met de werkelijke moederbord.Materialen:Foli
Munt-en kleinbedrijf succes Meter (stoppen met roken!) met Arduino

Munt-en kleinbedrijf succes Meter (stoppen met roken!) met Arduino

er komt een moment in het leven om kinderachtige dingen achter en geeft van vervelende gewoonten. Sommige, zoals roken, kunnen verdomd moeilijk zonder voortdurende aanmoediging. Het was tijd voor mij om mijn favoriete hobby te combineren met mijn dri
Het gebruik van de Module van de Camera van de OV7670 met Arduino?

Het gebruik van de Module van de Camera van de OV7670 met Arduino?

Hier introduceerden we één module van de camera van de OV7670 net gekocht online, met inbegrip van de mededeling van de cameramodule en Arduino UNO, met behulp van de manieren om te nemen van de foto via cameramodule, enzovoort. Dit is een cameramodu
KeyChainino - de eerste spel sleutelhanger programmeerbare met Arduino

KeyChainino - de eerste spel sleutelhanger programmeerbare met Arduino

KeyChainino is een vintage spel sleutelhanger programmeerbare met Arduino waar iedereen zijn eigen spel alleen met de Arduino IDE uploaden kunt.Als je echt Arcade Game liefde, is KeyChainino voor jou!Het hoeft niet elke LCDs, maar slechts 30 LEDs gec
Slimme persoonlijke Thermometer met Arduino

Slimme persoonlijke Thermometer met Arduino

Dit instructable is opgesteld als onderdeel van onze opdracht voor TfCD (technologie voor conceptontwerp) cursus bij TU Delft. De volgende instructable wordt bereid door:Bo Koperdraat: 4209567Karthik Mahadevan: 4501578In dit instructable leert u hoe
IoT stopcontact met Arduino en ESP8266

IoT stopcontact met Arduino en ESP8266

In dit instructable, ik u tonen hoe verbeterde toegankelijkheid, intelligentie en connectiviteit toevoegen aan een gewone stopcontact. Dit wordt gedaan met een combinatie van microcontrollers, Arduino, diverse sensoren, ESP8266 en een mix van softwar
Hoe te gebruiken 2.4 inch TFT LCD SPFD5408 met arduino MEGA 2560

Hoe te gebruiken 2.4 inch TFT LCD SPFD5408 met arduino MEGA 2560

Dit instructable zal u tonen hoe het SPFD5408 2.4 Inch LCD-scherm aan de arduino MEGA interfaceStap 1:Stap 2: BibliothekenSommigen van u kunnen hebben gekocht deze LCD-scherm of het denken op het krijgen vaneen. Haar een groot scherm voor het weergev