Stap 2: Bedrading en programmering van de zender
Volg het diagram om de draad van het zender-circuit.
Code
Upload de volgende code na het downloaden van de VirtualWire-bibliotheek aan uw 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); }
Belangrijk: De code wordt een knop ingesteld een drempelwaarde te detecteren de klop. Als u wilt instellen van de drempelwaarde, houd de knop ingedrukt en klop zoals u normaal op tafel. Kloppen te hard, terwijl de drempel instelling in een zeer hoge drempel resulteren zal, waardoor het moeilijk te detecteren de knock en te zacht kloppen in de geringste van kranen resulteren zal als wordt geïnterpreteerd als een knock. Zorg ervoor dat u een sweet spot vinden. Gebruik de seriële monitor om te controleren hoeveel stoten zijn worden ontdekt is een goede manier te gaan hierover.
U kunt zo veel zenders als je wilt, maar zorg ervoor dat u de code wijzigen zodat het aantal verzonden is verschillend voor elke zender. Een goede manier om dit te doen is het toevoegen van tien tot het aantal stoten voor de eerste zender, twintig tot het aantal stoten voor het tweede, enzovoort. In dit proces ontvangt u signalen zoals het getal 22, wat betekent dat de tweede zender tweemaal werd uitgeschakeld. Deze wijziging moet gebeuren in de lijn die zegt
<p>str[0] = (10+counter);</p>