INHOUDSOPGAWE:
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
VOORSIENINGS
-2 broodborde
-bizzer
-jumper drade
-2 arduino/genuino met kragkabels
-rf sender en ontvanger
-druk knoppie
-100 ohm weerstand
Stap 1: Funksie
Hierdie projek is 'n werkende deurklokkie, met die hooffunksie die kode om die arduino te programmeer op 'n manier waarop die drukknop met die sender 'n sein na die ontvangende kant stuur met die gonser en ontvanger, wat die gonsgeluid van die deurklokkie sal begin met 'n draadlose verbinding.
Stap 2: Stap 1: Senderbord
Hoe hierdie projek veronderstel is om te werk, is dat 2 broodborde en 2 arduiono/genuinos daaraan gekoppel is. vir die senderbord verbind ons die drukknoppie met die 100 ohm weerstand wat op die grond gekoppel is en 'n draad wat aan die krag op die broodbord gekoppel is. Koppel dan die sender aan die broodbord en draai die knoppie na beide die sender en die arduino, soos op die foto getoon.
Stap 3: Stap 2: Ontvangerbord
Op die ontvangerbord is waar die zoemer gaan. Koppel een draad aan die aarde deur die ontvanger en koppel 'n draad aan 'n pen van u keuse wat u later in u kode kan aanpas. Koppel die ontvanger aan die broodbord en dra dit na die arduino soos op die foto getoon.
Stap 4: Stap 3: Senderkode
// ask_transmitter.pde
// -* -modus: C ++ -* -
// Eenvoudige voorbeeld van hoe om RadioHead te gebruik om boodskappe oor te dra
// met 'n eenvoudige ASK -sender op 'n baie eenvoudige manier.
// Implementeer 'n eenvoudige (eenrigting) sender met 'n TX-C1-module
#insluit
#include // Nie eintlik gebruik nie, maar moet opgestel word
RH_ASK bestuurder;
// RH_ASK bestuurder (2000, 2, 4, 5); // ESP8266 of ESP32: moenie pen 11 gebruik nie
leemte opstelling ()
{
Serial.begin (9600); // Slegs ontfouting
pinMode (5, INVOER);
as (! driver.init ())
Serial.println ("init misluk");
}
leemte lus ()
}
if (digitalRead (5) == HOOG) {
const char *msg = "a";
driver.send ((uint8_t *) msg, strlen (msg));
driver.waitPacketSent ();
vertraging (200);
}
}
Stap 5: Stap 4: Ontvangerkode
#insluit
#include // Nie eintlik gebruik nie, maar moet opgestel word
#sluit "pitches.h" in // voeg ekwivalente frekwensie by vir musieknote
#sluit 'temas.h' in // voeg note vale en duur by
RH_ASK bestuurder;
leemte opstelling ()
{
Serial.begin (9600); // Slegs ontfouting
as (! driver.init ())
Serial.println ("init misluk");
anders
Serial.println ("klaar");
RH_ASK bestuurder;
leemte opstelling ()
{
Serial.begin (9600); // Slegs ontfouting
as (! driver.init ())
Serial.println ("init misluk");
anders
Serial.println ("klaar");
}
nietig Play_Pirates ()
{
for (int thisNote = 0; thisNote <(sizeof (Pirates_note)/sizeof (int)); thisNote ++) {
int noteDuration = 1000/Pirates_duration [thisNote]; // skakel tydsduur om na vertraging
toon (8, Pirates_note [thisNote], noteDuration);
int pauseBetweenNotes = noteDuration * 1.05; // Hier is 1.05 tempo, verhoog om stadiger te speel
vertraging (pauseBetweenNotes);
noTone (8); // stop musiek op pen 8
}
}
leemte lus ()
{
uint8_t buf [1];
uint8_t buflen = sizeof (buf);
if (driver.recv (buf, & buflen)) // Nie-blokkerend
{
Serial.println ("Geselekteer -> 'Hy is 'n seerower'");
Play_Pirates ();
Serial.println ("stop");
}
}