Étape 10 : CODE
MON CODE :
led1 int = 5 ;
led2 int = 6 ; Les LED se connecte à quels numéros sur lilypad
led3 int = 10 ;
led4 int = 9 ;
Capteur1 int = A5 ;
sensor2 int = A4 ; Quand le nombre de conducteurs est connectées à what A sur lilypad
sensor3 int = A2 ;
int sensor4 = A3 ;
int sensorValue1 ;
int sensorValue2 ;
int sensorValue3 ;
int sensorValue4 ;
la routine d’installation s’exécute une fois que lorsque vous appuyez sur reset :
void setup() {}
pinMode (led1, sortie) ;
pinMode (led2, sortie) ;
pinMode (DEL3, sortie) ;
pinMode (led4, sortie) ;
pinMode (Capteur1, entrée) ;
pinMode (sensor2, entrée) ;
pinMode (sensor3, entrée) ;
pinMode (sensor4, entrée) ;
Serial.Begin(9600) ; initialiser la communication
}
la routine de la boucle s’exécute maintes et maintes fois pour toujours :
void loop() {}
sensorValue1 = readCapacitivePin(sensor1) ; lire la valeur du capteur tactile
Serial.println(sensorValue1) ; Envoyer la valeur à l’ordinateur
Delay(100) ; délai pour 1/10 de seconde
Si (sensorValue1 > 1) / / si l'on appuie sur le « 1 »
{
digitalWrite (led1, HIGH) ; lumière sur tours
} else
{
digitalWrite (led1, faible) ; Si vous les touchez ne pas, éteignez
}
sensorValue2 = readCapacitivePin(sensor2) ; lire la valeur du capteur tactile
Serial.println(sensorValue2) ; Envoyer la valeur à l’ordinateur
Delay(100) ; délai pour 1/10 de seconde
Si (sensorValue2 > 1) / / si l'on appuie sur le « 2 »
{
digitalWrite (led2, HIGH) ;
}
d’autre
{
digitalWrite (led2, faible) ;
}
sensorValue3 = readCapacitivePin(sensor3) ; lire la valeur du capteur tactile
Serial.println(sensorValue3) ; Envoyer la valeur à l’ordinateur
Delay(100) ; délai pour 1/10 de seconde
Si (sensorValue3 > 1) / / si l'on appuie sur le « 3 »
{
digitalWrite (DEL3, HIGH) ;
}
d’autre
{
digitalWrite (DEL3, faible) ;
}
sensorValue4 = readCapacitivePin(sensor4) ; lire la valeur du capteur tactile
Serial.println(sensorValue4) ; Envoyer la valeur à l’ordinateur
Delay(100) ; délai pour 1/10 de seconde
Si (sensorValue4 > 1) / / si l'on appuie sur le « 4 »
{
digitalWrite (led4, HIGH) ;
}
d’autre
{
digitalWrite (led4, faible) ;
}
}
readCapacitivePin
D’entrée : Numéro d’identification Arduino
Sortie : Un nombre, de 0 à 17 exprimant
Combien capacitance est sur la broche
Quand vous touchez la broche, ou ce que vous avez
attaché à elle, le nombre obtiendrez plus élevé
#include « pins_arduino.h » / / Arduino pre-1. 0 a besoin de cela
uint8_t readCapacitivePin (int pinToMeasure) {}
Variables utilisées pour traduire de l’Arduino AVR broche nommage
volatils uint8_t * port ;
volatils uint8_t * ddr ;
volatils uint8_t * tige ;
Ici nous traduisons le nombre de broches d’entrée de
Arduino code PIN au PORT d’AVR, broches, DDR,
et que peu de ces registres, nous nous soucions.
masque de bits octets ;
port = portOutputRegister(digitalPinToPort(pinToMeasure)) ;
DDR = portModeRegister(digitalPinToPort(pinToMeasure)) ;
masque de bits = digitalPinToBitMask(pinToMeasure) ;
pin = portInputRegister(digitalPinToPort(pinToMeasure)) ;
Décharger la broche tout d’abord en lui affectant faible et de sortie
* port & = ~ (masque) ;
* ddr | = masque de bits ;
Delay(1) ;
Faire de la broche une entrée avec le pull-up interne sur
* ddr & = ~ (masque) ;
* port | = masque de bits ;
Voyons maintenant combien de temps la goupille pour obtenir tiré vers le haut. Ce déroulement manuel de la boucle
diminue le nombre de cycles de matériel entre chaque lecture de la broche,
augmentant ainsi la sensibilité.
uint8_t cycles = 17 ;
Si (* NIP & masque de bits) {cycles = 0;}
ElseIf (* NIP & masque de bits) {cycles = 1;}
ElseIf (* NIP & masque de bits) {cycles = 2;}
ElseIf (* NIP & masque de bits) {cycles = 3;}
ElseIf (* NIP & masque de bits) {cycles = 4;}
ElseIf (* NIP & masque de bits) {cycles = 5;}
ElseIf (* NIP & masque de bits) {cycles = 6;}
ElseIf (* NIP & masque de bits) {cycles = 7;}
ElseIf (* NIP & masque de bits) {cycles = 8;}
ElseIf (* NIP & masque de bits) {cycles = 9;}
ElseIf (* NIP & masque de bits) {cycles = 10;}
ElseIf (* NIP & masque de bits) {cycles = 11;}
ElseIf (* NIP & masque de bits) {cycles = 12;}
ElseIf (* NIP & masque de bits) {cycles = 13;}
ElseIf (* NIP & masque de bits) {cycles = 14;}
ElseIf (* NIP & masque de bits) {cycles = 15;}
ElseIf (* NIP & masque de bits) {cycles = 16;}
Décharger la goupille à nouveau en lui affectant faible et de sortie
Il est important de laisser les broches faible si vous voulez
être en mesure de toucher plus de 1 capteur à la fois - si
le capteur est laissé tiré haut, quand vous touchez
deux capteurs, votre corps va transférer la charge entre les
capteurs.
* port & = ~ (masque) ;
* ddr | = masque de bits ;
retour cycles ;
}