Paso 6: Subir código
PIN para el LED
int LEDPin = 13;
int LEDPin1 = 12;
int LEDPin2 = 11;
int LEDPin3 = 10;
int LEDPin4 = 9;
int LEDPin5 = 8;
int capSensePin = 2;
Se trata de qué tan alto el sensor necesita leer en orden
para un toque el gatillo. Usted encontrará este número
por ensayo y error, o usted podría tomar las lecturas en
el inicio del programa para calcular dinámicamente esto.
int touchedCutoff = 19;
int corte = 20;
int Cutoff1 = 21;
int Cutoff2 = 22;
int Cutoff3 = 23;
int Cutoff4 = 24;
int Cutoff5 = 25;
void setup() {}
Serial.Begin(9600);
Configurar el LED
pinMode (LEDPin, salida);
pinMode (LEDPin1, salida);
pinMode (LEDPin2, salida);
pinMode (LEDPin3, salida);
pinMode (LEDPin4, salida);
pinMode (LEDPin5, salida);
digitalWrite (LEDPin, LOW);
}
void loop() {}
Si el sensor capacitivo Lee por encima de cierto umbral,
enciende el LED
Si (readCapacitivePin(capSensePin) > touchedCutoff) {}
digitalWrite (LEDPin, alto);
}
Else {}
digitalWrite (LEDPin, LOW);
}
Si (readCapacitivePin(capSensePin) > atajo) {}
digitalWrite (LEDPin1, alto);
}
Else {}
digitalWrite (LEDPin1, LOW);
}
Si (readCapacitivePin(capSensePin) > Cutoff1) {}
digitalWrite (LEDPin2, alto);
}
Else {}
digitalWrite (LEDPin2, LOW);
}
Si (readCapacitivePin(capSensePin) > Cutoff2) {}
digitalWrite (LEDPin3, alto);
}
Else {}
digitalWrite (LEDPin3, LOW);
}
Si (readCapacitivePin(capSensePin) > Cutoff3) {}
digitalWrite (LEDPin4, alto);
}
Else {}
digitalWrite (LEDPin4, LOW);
}
Si (readCapacitivePin(capSensePin) > Cutoff4) {}
digitalWrite (LEDPin5, alto);
}
Else {}
digitalWrite (LEDPin5, LOW);
}
Cada 500 ms, imprimir el valor del sensor capacitivo
Si ((millis() % 500) == 0) {}
Serial.Print ("Sensor capacitivo en el Pin 2 se lee:");
Serial.println(readCapacitivePin(capSensePin));
}
}
readCapacitivePin
Entrada: Número de pin Arduino
Salida: Un número de 0 a 17 expresan
Cuánta capacidad está en el pin
Al tocar el pin, o lo que tengas
Unido a él, el número se obtendrá mayor
En orden para que funcione ahora,
El pin debe tener un 1 + Megaohm resistencia tracción
up a + 5v.
uint8_t readCapacitivePin (int pinToMeasure) {}
Se trata de cómo se declara una variable que
llevará a cabo los registros del puerto, PIN y DDR
en un AVR
Puerto de uint8_t volátiles *;
uint8_t volátiles * ddr;
uint8_t volátiles * pin;
Aquí traducimos el número de pin de entrada de
Número de pin del Arduino al puerto de AVR, PIN, DDR,
y que poco de estos registros nos importa.
máscara de bits bytes;
Si ((pinToMeasure > = 0) & & (pinToMeasure < = 7)) {}
Puerto = & PORTD;
DDR = & DDRD;
máscara de bits = 1 << pinToMeasure;
PIN = & PIND;
}
Si ((pinToMeasure > 7) & & (pinToMeasure < = 13)) {}
Puerto = & PORTB;
DDR = & DDRB;
máscara de bits = 1 << (pinToMeasure - 8);
PIN = & PINB;
}
Si ((pinToMeasure > 13) & & (pinToMeasure < = 19)) {}
Puerto = & PORTC;
DDR = & DDR;
máscara de bits = 1 << (pinToMeasure - 13);
PIN = & PINC;
}
Descarga primero el pin poniendo baja y salida
* Puerto & = ~ (máscara);
* ddr | = máscara;
Delay(1);
Hacer el pin una entrada sin el pull-up interno en
* ddr & = ~ (máscara);
Ahora a ver cuánto tiempo el pin Haz tirado para arriba
ciclos de int = 16000;
para (int i = 0; i < ciclos; i ++) {}
Si (* pin & máscara) {}
ciclos = i;
rotura;
}
}
Descarga el perno otra vez poniendo baja y salida
Es importante dejar los pernos bajos si quiere
ser capaz de tocar más de 1 sensor a la vez-
el sensor quedo tirado alto, cuando te toque
dos sensores, su cuerpo transferirá la carga entre
sensores.
* Puerto & = ~ (máscara);
* ddr | = máscara;
volver a ciclos;
}