Stap 10: CODE
MIJN CODE:
int led1 = 5;
int led2 = 6; Welke LED verbindt met wat op lilypad aantallen
int led3 = 10;
int led4 = 9;
int sensor1 = A5;
int sensor2 = A4; Wanneer geleidende nummers zijn verbonden met wat A's op lilypad
int sensor3 = A2;
int sensor4 = A3;
int sensorValue1;
int sensorValue2;
int sensorValue3;
int sensorValue4;
de setup-routine wordt uitgevoerd zodra wanneer u drukt op reset:
VOID Setup {}
pinMode (led1, OUTPUT);
pinMode (led2, OUTPUT);
pinMode (led3, OUTPUT);
pinMode (led4, OUTPUT);
pinMode (sensor1, INPUT);
pinMode (sensor2, INPUT);
pinMode (sensor3, INPUT);
pinMode (sensor4, INPUT);
Serial.begin(9600); initialiseren van de mededeling
}
de routine van de lus wordt uitgevoerd over en weer forever:
void loop {}
sensorValue1 = readCapacitivePin(sensor1); Lees de touch sensor waarde
Serial.println(sensorValue1); waarde naar de computer verzenden
delay(100); vertraging voor 1/10 van een seconde
Als (sensorValue1 > 1) / / als de "1" is aangeraakt
{
digitalWrite (led1, hoge); licht op bochten
} else
{
digitalWrite (led1, laag); Als niet aangeraakt, uitschakelen
}
sensorValue2 = readCapacitivePin(sensor2); Lees de touch sensor waarde
Serial.println(sensorValue2); waarde naar de computer verzenden
delay(100); vertraging voor 1/10 van een seconde
Als (sensorValue2 > 1) / / als de '2' is aangeraakt
{
digitalWrite (led2, hoge);
}
anders
{
digitalWrite (led2, laag);
}
sensorValue3 = readCapacitivePin(sensor3); Lees de touch sensor waarde
Serial.println(sensorValue3); waarde naar de computer verzenden
delay(100); vertraging voor 1/10 van een seconde
Als (sensorValue3 > 1) / / als de "3" is aangeraakt
{
digitalWrite (led3, hoge);
}
anders
{
digitalWrite (led3, laag);
}
sensorValue4 = readCapacitivePin(sensor4); Lees de touch sensor waarde
Serial.println(sensorValue4); waarde naar de computer verzenden
delay(100); vertraging voor 1/10 van een seconde
Als (sensorValue4 > 1) / / als de '4' is aangeraakt
{
digitalWrite (led4, hoge);
}
anders
{
digitalWrite (led4, laag);
}
}
readCapacitivePin
Ingang: Arduino pin-nummer
Uitgang: Een nummer, van 0 tot de uiting van de 17
hoeveel capaciteit is op de pin
Wanneer u contact met de pin, of wat je hebt
gekoppeld aan het, krijgt het nummer hogere
#include "pins_arduino.h" / / Arduino pre-1.0 moet dit
uint8_t readCapacitivePin (int pinToMeasure) {}
Variabelen die worden gebruikt om te vertalen van Arduino naamgeving van AVR-pin
vluchtige uint8_t * haven;
vluchtige uint8_t * ddr;
vluchtige uint8_t * pin;
Hier vertalen wij de invoer pin-nummer van
Arduino pin nummer AVR poort, PIN, DDR,
en welke bits van deze registers die we schelen.
byte bitmasker;
poort = portOutputRegister(digitalPinToPort(pinToMeasure));
DDR = portModeRegister(digitalPinToPort(pinToMeasure));
bitmasker = digitalPinToBitMask(pinToMeasure);
PIN = portInputRegister(digitalPinToPort(pinToMeasure));
Kwijting van de pin eerst door het lage- en output
* poort & = ~ (bitmasker);
* ddr | = bitmasker;
delay(1);
Maak de pin een ingang met de interne pull-up op
* ddr & = ~ (bitmasker);
* haven | = bitmasker;
Nu zien hoe lang de pin te krijgen trok. Deze handmatige afrollen van de lus
vermindert het aantal hardware cycli tussen elke lezen van de pin,
waardoor de gevoeligheid.
uint8_t cycli = 17;
Als (* pin & bitmasker) {cycli = 0;}
anders als (* pin & bitmasker) {cycli = 1;}
anders als (* pin & bitmasker) {cycli = 2;}
anders als (* pin & bitmasker) {cycli = 3;}
anders als (* pin & bitmasker) {cycli = 4;}
anders als (* pin & bitmasker) {cycli = 5;}
anders als (* pin & bitmasker) {cycli = 6;}
anders als (* pin & bitmasker) {cycli = 7;}
anders als (* pin & bitmasker) {cycli = 8;}
anders als (* pin & bitmasker) {cycli = 9;}
anders als (* pin & bitmasker) {cycli = 10;}
anders als (* pin & bitmasker) {cycli = 11;}
anders als (* pin & bitmasker) {cycli = 12;}
anders als (* pin & bitmasker) {cycli = 13;}
anders als (* pin & bitmasker) {cycli = 14;}
anders als (* pin & bitmasker) {cycli = 15;}
anders als (* pin & bitmasker) {cycli = 16;}
Kwijting van de pin opnieuw door het lage- en output
Het is belangrijk om te laten de pinnen laag als u wilt
mogelijk te raken meer dan 1 sensor tegelijk - als
de sensor wordt overgelaten getrokken hoog, wanneer je aanraken
twee sensoren, je lichaam zal de overdracht van de kosten tussen
sensoren.
* poort & = ~ (bitmasker);
* ddr | = bitmasker;
retourneren van cycli;
}