Schritt 9: Tippen Sie auf
Die analogen und digitalen Pin-Nummern für den Attiny sind ein wenig verwirrend. Ich gerne auf das folgende Diagramm beziehen, die aus der Datei "pin.h" für den Attiny-Core-Software kommt, wenn man tief genug graben:
ATMEL ATTINY45/85 Pin Assignments +-\/-+ Ain0 (D 5) PB5 1| |8 Vcc Ain3 (D 3) PB3 2| |7 PB2 (D 2) Ain1 Ain2 (D 4) PB4 3| |6 PB1 (D 1) pwm1 GND 4| |5 PB0 (D 0) pwm0
Der Touch-Sensor ist physisch verbunden, die Attiny Pin 7, die auf dem Atmel Datenblatt "PB2" bezeichnet wird. Wir müssen in Arduino Software den Pull-up-Widerstand mit dem digitalen Stift-Bezeichnung ("2") zu engagieren. Dann müssen wir die analogen Pin-Bezeichnung ("1") zu verwenden, wenn wir die analogRead()-Funktion verwenden. Als Teufel, verwirrend, aber ich bin nicht schlau genug, um neu zu schreiben die Arduino-Bibliotheken.
Um Kontakt zu messen, müssen wir ein wenig Arduino Magie zu tun. Durch die Einbeziehung einer internen Pull-up-Widerstand, können wir erkennen, wenn ändert sich der Widerstand auf zwei Spuren. Ohne eine Strombahn (hoher Widerstand) wird der 10-Bit-Wert in der Nähe von maximal 1023 sein, weil der Pull-up-Widerstand ist die Spannung hoch ziehen. Wenn Haut ein Strompfad bereitstellt, der analoge Wert sinkt unter 1000, und wir die LED an Erkennung auslösen kann.
int led = 4;<br>int touchPin = 1; int touchPullUp = 2; void setup() { pinMode(led, OUTPUT); digitalWrite(lightPullUp, HIGH); // engage pull-up resistor digitalWrite(touchPullUp, HIGH); // engage pull-up resistor } void loop() { int touchVal = analogRead(touchPin); if (touchVal < 1000){ digitalWrite(led, HIGH); } else { digitalWrite(led, LOW); } }
Hätten wir eine Schaltfläche oder einen Schalter installiert stattdessen, würde der Wert 0 in der Nähe von da der Widerstand fast Null fallen.