Stap 3: Bel knop
We moeten een simpele knop circuit voor het aanroepen van de persoon aan de andere kant van de walkie talkie. Ik gebruikte een eenvoudige drukknop, 10 k ohm weerstand en een condensator voor 100 nF. Het circuit is vrij eenvoudig. Ik heb een condensator toegevoegd aan het typische knop circuit dat u bekend met wellicht. Deze condensator is om te voorkomen dat de "stuiterende" of grillige signalen van de knop. U wellicht bekend met andere manieren om te debounce van een knop, maar ik heb gevonden dat het toevoegen van de condensator goed genoeg werkt.
Ik heb een interrupt bijgevoegd aan op pin 3 om te ontdekken wanneer de knop wordt gedrukt. Er zijn echt handige interrupts. Ze laten te "onderbroken" de code zodat precies getimede gebeurtenissen zonder verslechtering functioneert van prestaties (indien behoorlijk gedaan).
attachInterrupt(digitalPinToInterrupt(talkButton), talk, CHANGE);
Met dit stukje code gaan we naar de "talk()"-functie die de spanning op pin 3 controleert. Als de spanning hoog of 5 V, zal de nRF24L01 overschakelen naar de modus (het verzenden van spraakgegevens) verzenden. Als de spanning laag of 0 V is, zal de nRF24L01 overschakelen naar de modus (ontvangende stem) ontvangen. De spanning op pin 3 moet hoog wanneer de knop wordt ingedrukt en lage wanneer de knop wordt losgelaten. Wanneer de spanning op pin 3 "verandert" zoals aangegeven in onze "attachInterrupt"-functie, zal de functie van "talk()" uitvoeren.
void talk()<br>{<br> if (digitalRead(talkButton)) rfAudio.transmit();<br> else rfAudio.receive();<br>}