UnKnocki (2 / 5 steg)

Steg 2: Elkablar och programmering sändaren



Följ diagrammet för att tråd sändaren kretsen.

Koden

Ladda upp följande kod efter nedladdning VirtualWire biblioteket till din arduino IDE.

#include < VirtualWire.h > / / du måste hämta och installera VirtualWire.h till din hårdvara/bibliotek folde

int sensorPin = A0; Välj input PIN-koden för potentiometer
int counter = 0;
int thold = 8;
int bpin = 2;
int maxm = 0;
int pvalue = 0;
bool återställa = false;

char str [1].

void setup() {

Serial.BEGIN(9600);
pinMode(bpin,INPUT);
pinMode(13,OUTPUT);

vw_set_ptt_inverted(true); Krävs för RF länk modul
vw_setup(1000); Bitar per sekund
vw_set_tx_pin(11); < /p >< p > Serial.println("hi");
}

void loop() {

om (digitalRead(bpin) == hög) {
thold = 0;
maxm = 0;
återställa = sant;
}
medan (digitalRead(bpin) == hög) {

pvalue = analogRead(sensorPin);

om (maxm

om (reset) {
återställa = false;
thold = maxm-(maxm*0.4);
Serial.Print ("Max Value:");
Serial.println(thold);
}

räknare = 0;
Läs värdet från sensorn:
int pin = analogRead(sensorPin); < /p >< p > om (pin > thold) {
räknare = 1;
osignerade långa currentMillis = millis();
Delay(50);

medan ((osignerade int)(millis()thold) {
räknaren ++;
Delay(50);

}

}

Delay(50);
Serial.Print(Counter);
Str [0] = (10 + counter);

vw_send ((uint8_t *) str, strlen(str));
vw_wait_tx(); Vänta på meddelandet till slut
digitalWrite(13,1);
Delay(100);
digitalWrite(13,0);
Serial.println ("skickat"); }

Delay(5);

}

Viktigt: Koden använder en knapp för att ange ett tröskelvärde att upptäcka knock. Ställ in tröskelvärdet, håll knappen och slå som vanligt på bordet. Knackar för hårt medan fastställande tröskelvärdet kommer att resultera i en mycket hög tröskel vilket gör det svårt att upptäcka knock och knackar för lågt kommer att resultera i den minsta av kranar som tolkas som en knock. Se till att du hittar en sweet spot. Använda följetong monitor för att kontrollera hur många smällar är att bli upptäckt är ett bra sätt att hantera detta.

Du kan skapa så många sändare som du vill, men se till att ändra koden så att antalet överförda är olika för varje sändare. Ett bra sätt att göra detta är att lägga till tio till antalet smällar för den första sändaren, tjugo till antalet smällar för andra och så vidare. I denna process får du signaler som nummer 22, vilket innebär den andra sändaren slogs två gånger. Denna förändring måste ske i raden som säger

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

Se Steg
Relaterade Ämnen