Capacitive Touch Arduino lampe (4 / 7 étapes)

Étape 4: Discussion de CODE

Cette section décrit les différentes variables et constantes, que nous allons utiliser. Veuillez noter que j’ai utilisé const byte au lieu d’int. La raison en est, est que les micro-controleurs ont très peu d’espace de stockage. Valeurs int peuvent prendre jusqu'à 28 octets, où comme un octet de valeur peut stocker un nombre entre 1 et 255 et prend seulement... 1 octet.  J’ai utilisé la balise int pour touchThreshold parce que je recevais des valeurs supérieures à 255 retourné.

Const byte est utilisé, car il indique au compilateur d’utilisation stockage optimiseur.

const byte LEDPin = 11 ;       Broche de sortie PWM pour LED
const byte capSensePin = 2 ;   Broche pour fixer à un capteur capacitif
mode octets = 0 ;         Détermine la luminosité de la LED. 0 est éteint. Varie entre 0 et 255.
int touchThreshold = 100 ; Valeur minimale tactile capacitif pour déclencher le mode suivant
targetBrightness octets = 0 ; Puissance réglée sur la luminosité
currentBrightness octets = 0 ;

Annuler le programme d’installation s’exécute une fois et assignez pinModes etc. J’ai commencer le serial monitor ici parce que je l’utilisais pour tirer d’ennui.

void setup() {}
Serial.Begin(9600) ;
pinMode (LEDPin, sortie) ;  Mode de sortie la valeur LEDPin
}

void loop() {}

Il s’agit de la boucle principale du programme. Il garde en répétant et en passant par les différentes lignes de code.

Si (readCapacitivePin(capSensePin) > touchThreshold) {//If la valeur de capSensePin est supérieure à touchThreshold puis faire...
Delay(250) ;
Bouton Debounce. Comment supprimerait cette rupture à l’aide de millis()??
mode ++ ; Si le seuil du touch est dépassé, augmentez la valeur de mode par 1

Cette section suivante décrit les différents niveaux de luminosité des LED. Deux == dans une ligne indique au processeur de comparer deux valeurs.
Si mode (mode > 3) = 0 ;  Si la valeur de mode est > 3 puis la valeur valeur mode 0.
Si (mode == 0) targetBrightness = 0 ;
Si (mode == 1) targetBrightness = 255 ;
Si (mode == 2) targetBrightness = 128 ;
Si (mode == 3) targetBrightness = 64 ;

Serial.Print ("le mode actif est...") ; Serial monitor bebug mode augmente
Serial.println(mode) ;  imprimer la valeur de mode de moniteur seial

}
Se fanent la portion

Si (targetBrightness > currentBrightness) currentBrightness ++ ; Si la luminosité de la cible est inférieure à la luminosité actuelle, puis de + 1 à //current luminosité
Si (targetBrightness < currentBrightness) currentBrightness--;
analogWrite (LEDPin, currentBrightness) ; PWM sortie vers LEDPin. Cela modifie la luminosité de la lumière
Delay(3) ;
Serial.println(currentBrightness) ;

CE MOMENT JE N’ÉCRIVAIS PAS. Il a été iincluded dans l’exemple de l’arduino.
Toutes les 500 ms, imprimer la valeur du capteur capacitif
Si ((millis() % 500) == 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 ;
}

Articles Liés

Super Secret palastre w / Capacitive Touch

Super Secret palastre w / Capacitive Touch

Hey tout le monde, je voulais partager un projet que je viens de finir vers le haut. J'ai construit une zone de verrouillage super secret pour mon petit frère de copines. Il a un talent pour la création lego construction donc j'ai pensé que ce serait
Bananaphone : Un synthé de Capacitance Touch

Bananaphone : Un synthé de Capacitance Touch

j'ai été récemment inspiré par un projet Kickstart utilisé bananes comme capteurs pour contrôler un jeu vidéo sur PC.  J'ai fait quelques contrôles de jeu vidéo à l'aide de l'hélice dans le passé, mais j'ai pensé que cela ferait un intéressant projet
Comment faire une installation de musique polyphonique déclenchée par capacitive touch points en utilisant un Arduino

Comment faire une installation de musique polyphonique déclenchée par capacitive touch points en utilisant un Arduino

Lors d'un projet à la KISD, nous avons fait une installation de musique interactive qui était jouable sur un lieu de transport en commun. Le look de celui-ci a été inspiré par les plans de métro colorés qui séparent chaque ligne de train avec une cou
Touchez la lampe

Touchez la lampe

L'idée de base pour cela est instructable consiste à faire une lampe simple matériel et matériaux recyclés qui peuvent être contrôlées en touchant du métal de base. J'ai été assis sur cette idée pendant un certain temps maintenant, mais voir les lamp
Système d’arrosage automatique avec sonde capacitive et Arduino sur le bon marché (et je le pense)

Système d’arrosage automatique avec sonde capacitive et Arduino sur le bon marché (et je le pense)

Avertissement : Je ne suis pas un ingénieur électronicien, alors je ne peux pas offrir aucune garantie pour la conception (beaucoup moins pour votre implémentation). Je ne connais que la solution présentée a fonctionné pour moi pendant au moins 5-6 m
Mettez un crayon dessin dans un capteur capacitif pour Arduino

Mettez un crayon dessin dans un capteur capacitif pour Arduino

Saviez-vous ?  Vous pouvez faire des dessins au crayon réactives au toucher pour une utilisation avec vos projets !  Il est vraiment facile et vous donne une grande souplesse dans la fabrication des interfaces pour quelque projet de microcontrôleur v
Un commutateur capacitif pour Arduino

Un commutateur capacitif pour Arduino

Il s'agit d'un moyen simple de réaliser et d'utiliser des commutateurs capacitifs avec un Arduino ou un dispositif similaire comme un Pi de framboise. Ces commutateurs sont toucher sensible, peuvent être n'importe quel forme ou taille et peuvent être
LCDBPV2 3.2" TFT + Touch & Arduino UNO. FAST

LCDBPV2 3.2" TFT + Touch & Arduino UNO. FAST

Quand j'ai commencé à construire des projets, j'ai réalisé qui ont besoin d'un affichage, mieux que les leds pour afficher des données en temps réel.Affiche pourrait être coûteuse et aussi il y a différents types: 7 segments avec différentes tailles,
Arduino - lampe Android bluetooth contrôlée

Arduino - lampe Android bluetooth contrôlée

Kementze.com | Contrôle de lampe projetAvec ce projet, vous pouvez contrôler votre lampe maison avec votre smartphone android via bluetooth !Ce projet comprend toutes les étapes de construction :Etape 1: Conception App avec MIT App Inventor 2Étape 2:
Toucher la lampe de poche Sensing

Toucher la lampe de poche Sensing

faire un LED lumineux s'allume lorsque vous touchez des plaques de métal. Pas de boutons ou interrupteurs nécessaires.Étape 1: Ce que vous devez Ce dont vous avez besoin-Plaques de métal (j'ai utilisé 4)Fils (idk combien)A conduitTransistor NPN (tout
Framboise Pi Pad ! Capacitive Touch Screen Tablet !

Framboise Pi Pad ! Capacitive Touch Screen Tablet !

Un bref guide pour faire votre garniture de pi tactile très propre !Écran tactile capacitif de Element14 £60Apple ipad mini batterie £10Chargeur de batterie au lithium et 5v usb 2 driver board £5Raspberry pi 2 £35Fer à souder et compétencesPlis de bo
Capacitive Touch Sensing

Capacitive Touch Sensing

dans cette vidéo nous allons examiner à l'aide d'un micro PIC qui a le tactile capacitif sentant module à bord.  Il s'agit de la puce PIC16f727.  Ils font partie de la série mTouch de PIC micro que Microchip a sortir avec.  Je parle dans cette vidéo
Super facile Capacitive Touch Stylus

Super facile Capacitive Touch Stylus

je suis tombé sur ce complètement par hasard. J'écoutais de la musique sur mon téléphone au travail un jour et le cordon sur mon casque gardé l'écran tactile et faisant glisser et cliquez sur toutes sortes de choses. Quand je suis rentré, j'ai sorti
Le toucher, lampe de poche ON!!!, bon marché, aucun Arduino

Le toucher, lampe de poche ON!!!, bon marché, aucun Arduino

Que diriez-vous une lampe qui s'allume lorsque vous retenir cette charge et s'éteint quand vous le mettez!!!Aucun souci d'interrupteur ou quoi que ce soit, il suffit de toucher le l'affaire et voir la LED s'allume. J'allais à travers ce site quand j'