UnKnocki (2 / 5 étapes)

Étape 2: Câblage et programmation de l’émetteur

Suivez le schéma pour câbler le circuit émetteur.

Code

Télécharger le code suivant après avoir téléchargé la bibliothèque VirtualWire sur votre arduino IDE.

 #include <VirtualWire.h>// you must download and install the VirtualWire.h to your hardware/libraries folde int sensorPin = A0; // select the input pin for the potentiometer int counter = 0; int thold = 8; int bpin = 2; int maxm = 0; int pvalue = 0; bool reset = false; char str[1]; void setup() { Serial.begin(9600); pinMode(bpin,INPUT); pinMode(13,OUTPUT); vw_set_ptt_inverted(true); // Required for RF Link module vw_setup(1000); // Bits per sec vw_set_tx_pin(11); </p><p>Serial.println("hi"); } void loop() { if (digitalRead(bpin) == HIGH){ thold = 0; maxm = 0; reset = true; } while (digitalRead(bpin) == HIGH){ pvalue = analogRead(sensorPin); if (maxm if (reset){ reset = false; thold = maxm-(maxm*0.4); Serial.print("Max Value set to: "); Serial.println(thold); } counter = 0; // read the value from the sensor: int pin = analogRead(sensorPin);</p><p> if (pin>thold){ counter=1; unsigned long currentMillis = millis(); delay(50); while((unsigned int)(millis()thold){ counter++; delay(50); } } //delay(50); Serial.print(counter); str[0] = (10+counter); vw_send((uint8_t *)str, strlen(str)); //vw_wait_tx(); // Wait for message to finish digitalWrite(13,1); delay(100); digitalWrite(13,0); Serial.println(" sent"); } delay(5); } 

IMPORTANT : Le code utilise un bouton pour définir une valeur seuil pour détecter la frapper. Pour définir la valeur de seuil, maintenez le bouton enfoncé et chasser comme vous le feriez normalement sur la table. Frapper trop fort tout en définissant le seuil se traduira par un seuil très élevé rendant difficile à détecter la frapper et frapper trop doucement se traduira dans le moindre des robinets comme étant interprétée comme un coup. Assurez-vous de que trouver un sweet spot. Utilisation du moniteur série pour vérifier combien de coups sont détectés est un bon moyen d’aller à ce sujet.

Vous pouvez créer beaucoup d’émetteurs que vous voulez, mais n’oubliez pas de changer le code tel que le numéro transmis est différente pour chaque émetteur. Une bonne façon de procéder est d’ajouter dix le nombre de coups pour le premier émetteur, vingt le nombre de coups pour la seconde et ainsi de suite. Dans ce processus, vous recevrez des signaux tels que le nombre 22, qui signifie que le deuxième émetteur a été frappé deux fois. Ce changement doit être fait dans la ligne qui indique

 <p>str[0] = (10+counter);</p> 

Articles Liés