Capacitiva táctil Arduino lámpara (4 / 7 paso)

Paso 4: Discusión de código

Esta sección describe las diversas variables y constantes que vamos a utilizar. Tenga en cuenta que he utilizado byte const en lugar de int. La razón es, es que los microcontroladores tienen muy limitado espacio de almacenamiento. Valores de int pueden tomar hasta 28 bytes, donde como un byte de valor puede almacenar un número entre 1 y 255 y sólo toma... 1 byte.  Usé la etiqueta int para touchThreshold porque me metía a valores mayores que 255 volvió.

Byte const se utiliza, porque dice el compilador optimizador almacenamiento uso.

byte const LEDPin = 11;       Pin de salida de PWM para LED
capSensePin byte const = 2;   PIN para conectar al sensor capacitivo
modo de byte = 0;         Determina el brillo del LED. 0 es. Varía entre 0 y 255.
int touchThreshold = 100; Valor mínimo táctil capacitiva para activar modo siguiente
byte targetBrightness = 0; Conjunto poder en brillo
byte currentBrightness = 0;

Void setup ejecuta una vez y asignar pinModes etc.. Empiezo al serial monitor aquí porque yo estaba usando para disparar problemas.

void setup() {}
Serial.Begin(9600);
pinMode (LEDPin, salida);  Establece LEDPin en modo salida
}

void loop() {}

Este es el bucle del programa principal. Mantiene repitiendo y pasando por las distintas líneas de código.

Si (readCapacitivePin(capSensePin) > touchThreshold) {//If el valor de capSensePin superior a touchThreshold entonces hacer...
Delay(250);
Botón Debounce. ¿Cómo sería eliminar esta rotura usando millis()??
modo ++; Si se supera el umbral táctil, aumentar valor del modo 1

Esta sección siguiente describe los diferentes niveles de brillo de LED. Dos == en una fila dice el procesador para comparar dos valores.
Si el modo (modo > 3) = 0;  Si el valor de modo es > 3 entonces ajuste de modo a 0.
Si (modo == 0) targetBrightness = 0;
Si (modo == 1) targetBrightness = 255;
Si (modo == 2) targetBrightness = 128;
Si (modo == 3) targetBrightness = 64;

Serial.Print ("el modo actual es..."); Aumenta el serial monitor a modo de bebug
Serial.println(Mode);  Imprimir valor de modo monitor seial

}
Porción de Fade

Si (targetBrightness > currentBrightness) currentBrightness ++; Si la luminosidad del objetivo es menor que el actual brillo, entonces + 1 brillo //current
Si (targetBrightness < currentBrightness) currentBrightness--;
analogWrite (LEDPin, currentBrightness); PWM salida LEDPin. Esto cambia el brillo de la luz
Delay(3);
Serial.println(currentBrightness);

ESTE PUNTO HACIA ADELANTE NO ESCRIBO. Fue incluido en el ejemplo de arduino.
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;
}

Artículos Relacionados

Cómo hacer una instalación de música polifónica por capacitiva táctil puntos utilizando un Arduino

Cómo hacer una instalación de música polifónica por capacitiva táctil puntos utilizando un Arduino

Durante un proyecto en KISD hemos realizado una instalación de música interactiva que era jugable en un lugar de tránsito público. La mirada de él se inspiró en los planes de metro coloridos que separa cada línea con un color diferente. Para las líne
Super caja de la cerradura de secreto con capacitiva táctil

Super caja de la cerradura de secreto con capacitiva táctil

Hola todos, quería compartir un proyecto que acaba de terminar para arriba. Construí una caja de cierre super secreta para mi hermanito de novias. Él tiene un don para creativo lego construcción así que pensé que sería una buena idea de lo abrir tan
DIY See-through resorte aguja para cualquier pantalla capacitiva táctil

DIY See-through resorte aguja para cualquier pantalla capacitiva táctil

Aquí es el DIY stylus para pantalla táctil capacitiva que hice yo en mi teléfono android. La mayoría de los dispositivos de pantalla táctil utiliza pantalla táctil capacitiva así que usted puede utilizarlo en tu smartphone o tablet.Paso 1: Lo que nec
Estroboscópico de Arduino / lámpara estroboscópica

Estroboscópico de Arduino / lámpara estroboscópica

es este instructable sobre el efecto estroboscópico como Paty o lámpara estroboscópica con leds.En la foto utilicé los 5v de arduino a través de un transistor para demostrar el uso de un poder hacia fuera-surce para usar leds más y más poder.El poten
Super fácil Stylus capacitiva táctil

Super fácil Stylus capacitiva táctil

me tropecé en este completamente por casualidad. Estaba escuchando música en mi teléfono en el trabajo un día y el cable en mis auriculares tocando la pantalla y haciendo que se deslice y haga clic en todo tipo de cosas. Cuando llegué a casa sacó uno
Hacer 3D táctil imprime Talk

Hacer 3D táctil imprime Talk

El microcontrolador Arduino Duemilanove se utilizó en instructables llamado "Capacitiva táctil Arduino teclado Piano" para demostrar cómo el sensor de capacitancia se puede utilizar para simular tocar un piano tocando el papel de aluminio "
Táctil capacitiva de detección para un masajeador Personal

Táctil capacitiva de detección para un masajeador Personal

Hacer rápidamente un plátano, una bebida, el marco de la cama, una pala de spanking o incluso tu pareja sexual en un controlador sensible al tacto para su consolador! Sincronizar los sentimientos placenteros de un masajeador de cabeza metálico con su
Táctil capacitiva humor/Ambilight

Táctil capacitiva humor/Ambilight

este instructable es una rápida reseña de mi experiencia creando un moodlight multifuncional. Se espera que algunos conocimientos básicos de circuitos electrónicos. El proyecto no tiene aún acabado, algunos agregando funcionalidad y ajuste se tiene q
Cojín de frambuesa Pi! Táctil capacitiva pantalla Tablet!

Cojín de frambuesa Pi! Táctil capacitiva pantalla Tablet!

Una breve guía en la fabricación de su cubierta de pantalla táctil propia pi!Pantalla táctil capacitiva de Element14 £60Apple ipad mini batería £10Cargador de batería de litio y 5v usb 2a conductor tablero £5Raspberry pi 2 £35Soldador y habilidadesCa
2.4" TFT LCD táctil Shield Arduino

2.4" TFT LCD táctil Shield Arduino

2.4" TFT LCD táctil Arduino UNO Hola mundo escudo2.4" diagonal TFT LCD pantalla táctil resistente 4-wire LED luz de fondoPaso 1: Scetch#include / / librería gráfica de base#include / / hardware específico biblioteca #include#define YP A1 / / deb
Tutorial Arduino: Sensores de tacto capacitivo

Tutorial Arduino: Sensores de tacto capacitivo

Hola a todos!Este instructable es un tutorial que le guiará en el uso de los sensores de tacto capacitivo con Arduino. Un sensor capacitivo es una especie de sensor táctil, que requiere poca o ninguna fuerza.En este Instructable sobre táctil capaciti
CupBots - 3D plataforma robótica impresa para Arduino y frambuesa Pi

CupBots - 3D plataforma robótica impresa para Arduino y frambuesa Pi

Aquí es un proyecto de robótica de gran fin de semana para emprender con amigos o gente en su espacio local del fabricante. Usted necesitará una impresora 3D práctico 3D impresión los archivos STL adjuntan como parte de los pasos a continuación y una
Flauta de Arduino Synth

Flauta de Arduino Synth

Antes de construir este sintetizador flauta, construí otro sintetizador de Arduino usando el código fuente de un Instructable llamado el sintetizador caja de correos. Puse las entrañas en una vieja caja de música y conectado a un control de entrada d
Tocarlo, linterna ON!!!, barato, no Arduino

Tocarlo, linterna ON!!!, barato, no Arduino

Qué tal una linterna que se enciende cuando se mantiene y se apaga cuando la pones hacia abajo!!!!!!Complicaciones de interruptor ni nada, simplemente no toque el la caja y ver el LED se encenderán. Iba a través de este sitio cuando encontré un instr