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