Étape 6: Code pour Mac Osx
#define OSX 0
#define WINDOWS 1
#define UBUNTU 2
changer cela pour correspondre à votre plateforme :
plateforme int = OSX ;
Code PIN pour vous connecter à votre dessin
int capSensePin = A2 ;
C’est à quelle hauteur le capteur a besoin de lire dans l’ordre
pour déclencher une touche. Vous trouverez ce numéro
par essais et erreurs, ou vous pourriez prendre des lectures à
le début du programme calculer dynamiquement.
int touchedCutoff = 60 ;
void setup() {}
Serial.Begin(9600) ;
Mettre en place la LED
faire la broche 2 une entrée et allumez la
résistance de pullup il va haut sauf
connecté à la masse :
pinMode (2, INPUT_PULLUP) ;
Keyboard.Begin() ;
}
void loop() {}
Si le capteur capacitif mesure dépassant un certain seuil,
allumer la LED
Si (readCapacitivePin(capSensePin) > touchedCutoff) {}
commutateur (plateforme) {}
cas OSX :
Keyboard.Press(KEY_LEFT_GUI) ;
Maj-Q se déconnecte :
Keyboard.Press(KEY_LEFT_SHIFT) ;
Keyboard.Press('Q') ;
Delay(100) ;
Keyboard.releaseAll() ;
Entrez :
Keyboard.Write(KEY_RETURN) ;
Break;}
}
Toutes les 500 ms, imprimer la valeur du capteur capacitif
Si ((100 % de millis()) == 0) {}
Serial.Print ("capteur capacitif sur broche 2 se lit:") ;
Serial.println(readCapacitivePin(capSensePin)) ;
}
}
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é
Afin que cela fonctionne maintenant,
Le code pin doit avoir un + 1 Megaohm résistance traction
Il place à + 5v.
uint8_t readCapacitivePin (int pinToMeasure) {}
C’est comment vous déclarez une variable qui
tiendra les registres PORT PIN et DDR
sur un AVR
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 ;
Si ((pinToMeasure > = 0) & & (pinToMeasure < = 7)) {}
port = & PORTD ;
DDR = & DDDR ;
masque de bits = 1 << pinToMeasure ;
pin = & PIND ;
}
Si ((pinToMeasure > 7) & & (pinToMeasure < = 13)) {}
port = & PORTB ;
DDR = & DDRB ;
masque de bits = 1 << (pinToMeasure - 8) ;
pin = & PINB ;
}
Si ((pinToMeasure > 13) & & (pinToMeasure < = 19)) {}
port = & PORTC ;
DDR = & DDRC ;
masque de bits = 1 << (pinToMeasure - 13) ;
pin = & PINC ;
}
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 sans le pull-up interne sur
* ddr & = ~ (masque) ;
Voyons maintenant combien de temps la goupille pour obtenir tiré vers le haut
cycles d’int = 16000 ;
pour (int i = 0; i < cycles; i ++) {}
Si (* NIP & masque de bits) {}
cycles = i ;
rupture ;
}
}
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 ;
}