Innehållsförteckning:
Video: ATtiny85 RF -fjärrkontroll: 3 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:38
OBS: Mitt instruerbara "Virtual Hide-and-Seek Game" visar hur man använder denna typ av fjärrkontroll med en RXC6-modul som automatiskt avkodar meddelandet.
Som jag nämnde i en tidigare Instructable började jag nyligen spela med några ATtiny85 -marker. Det första projektet jag hade i åtanke var att göra en RF -fjärrkontroll som kunde fungera på ett myntbatteri. Jag behövde gå med ett rått chip eftersom ingen av de Arduinos jag har kan tillgodose både behovet av mycket låg effekt och relativt liten storlek. En modifierad LilyPad kom nära men chipet är ett bättre svar. Tanken var inte så mycket att duplicera en befintlig fjärrkontroll utan att demonstrera hur du kan skapa din egen sändare och mottagare. Förutom att det är ett roligt inlärningsprojekt kan du också skapa din egen "hemliga" kodkombination. Jag sätter "hemlighet" i citattecken eftersom det är ganska lätt att knäcka dessa enkla koder.
Steg 1: RF -meddelandeformat
För detta projekt valde jag att replikera signalerna för en av mina Etekcity RF trådlösa switchar (se min Instructable på dessa moduler). Jag gjorde det för att jag kunde verifiera att min sändare fungerar med Etekcity -mottagaren och att min mottagare fungerar med Etekcity -fjärrkontrollen. Jag råkar också veta exakt vilka rätt koder och format som är för dessa enheter eftersom jag fångade dem tidigare. Se min "Arduino RF Sensor Decoder" instruerbar för kodinspelningsskissen.
Koderna och formaten för Etekcity -butikerna är mycket typiska för billiga RF -enheter. Jag har billiga säkerhetsenheter som använder mycket liknande format med bara några tidsvariationer. Meddelandelängden är bekvämt 24 bitar med en lång startbit och en kort stoppbit. Du kan enkelt ändra koden för att lägga till fler byte med data och för att ändra tidpunkten för synkronisering och databitar. Återigen är denna skiss bara en startmall.
Steg 2: Hårdvara
Sändaren körs på ett myntbatteri (2032) så låg strömförbrukning är nyckeln. Det mesta uppnås i programvaran men det hjälps av att ATtiny85 normalt körs på 1 MHz intern klocka. Regeln är att lägre klockfrekvenser kräver mindre effekt och 1-MHz är perfekt för sändarlogiken.
Själva RF -sändarmodulen jag gillar att använda är en FS1000A som är allmänt tillgänglig. Den finns i både 433 MHz och 315 MHz versioner. Programvaran bryr sig inte om vilken du använder, men du måste se till att mottagarkortet fungerar med samma frekvens. De flesta av mina projekt använder 433-MHz-enheter eftersom det är det som används av de olika billiga trådlösa enheterna jag har samlat på mig. Sändarkortets layout som visas på bilden passar fint in i en gammal pillerflaska. Det är inte vackert men tillräckligt bra för ett proof-of-concept.
Mottagaren är på en lödlös brödbräda eftersom dess enda syfte är att visa hur man tar emot signaler och hur man slår på/av något baserat på de mottagna koder. Den använder en lysdiod för att indikera på/av -status, men du kan ersätta den med en relädrivrutin etc. Vilken som helst Arduino kan användas för mottagaren eftersom den inte behöver gå ur ett batteri. Om storlek fortfarande är en övervägande kan du använda ett annat ATtiny85 -chip. Nyckeln är att ATtiny85 måste köras med 8 MHz i mottagaren. Se min tidigare ATtiny85 Instructable för en enkel skiss som verifierar att du har ändrat den interna klockan till 8-MHz. I slutet av min Instructable on sensor -avkodning inkluderar jag en Arduino Nano -version av mottagarprogramvaran. Det är identiskt med ATtiny85 -versionen som ingår här med undantag för ett par chipregisterskillnader.
Som jag beskrev i mina tidigare RF -instruktioner, föredrar jag att använda en mottagare som den vanliga RXB6. Det är en super-heterodyne-mottagare som fungerar mycket bättre än de super-regenerativa mottagarna som vanligtvis levereras med FS1000A-sändarna.
Både sändar- och mottagarmodulerna fungerar bättre med rätt antenner men de levereras ofta inte. Du kan köpa dem (få rätt frekvens) eller så kan du göra din egen. Vid 433 MHz är rätt längd cirka 16 cm för en rak trådantenn. För att göra en lindad, ta cirka 16 cm isolerad, solid kärntråd och linda den runt något som en 5/32-tums borrskaft i ett enda lager. Avlägsna isoleringen från en kort rak sektion i ena änden och anslut den till din sändare/mottagarkort. Jag har upptäckt att kabeln från en skrot Ethernet -kabel fungerar bra för antenner. Sändarkortet har vanligtvis en plats för lödning av antennen men mottagarkortet kan bara ha stift (som RXB6). Se bara till att anslutningen är säker om du inte lödder den.
Steg 3: Programvara
Sändarprogramvaran använder vanliga tekniker för att sätta in chipet i viloläge. I det läget drar det mindre än 0.2ua ström. Omkopplaringångarna (D1-D4) har de interna uppdragningsmotstånden påslagna men de drar ingen ström förrän en knapp trycks in. Ingångarna är konfigurerade för interrupt-on-change (IOC). När en omkopplare trycks in, genereras ett avbrott och det tvingar chippet att vakna. Avbrottshanteraren utför cirka 48 ms fördröjning för att tillåta omkopplaren att debounce. En kontroll görs sedan för att avgöra vilken omkopplare som trycktes in och lämplig rutin anropas. Det överförda meddelandet upprepas flera gånger (jag valde 5 gånger). Detta är typiskt för kommersiella sändare eftersom det finns så mycket RF-trafik på 433 MHz och 315 MHz där ute. De upprepade meddelandena hjälper till att säkerställa att åtminstone en tar sig till mottagaren.
Synkroniserings- och bettiderna definieras på framsidan av sändarprogramvaran men databyte är inbäddade i var och en av de fyra knapprutinerna. De är uppenbara och lätta att ändra och att lägga till byte för att göra ett längre meddelande är också enkelt. Alla samma definieringar ingår i mottagarprogramvaran samt databytesdefinitionerna. Om du lägger till databyte i ditt meddelande måste du ändra definitionen för "Msg_Length" och lägga till byte till variabeln "RF_Message". Du måste också lägga till kod i "RF_Message" -checkningen i "loop" för att verifiera att de extra bytena tas emot korrekt och definiera dessa bytes.
Rekommenderad:
Större och förbättrad julstjärna Neopixel Attiny85: 3 steg (med bilder)
Större och förbättrad julstjärna Neopixel Attiny85: Förra året gjorde jag en liten 3D-tryckt julstjärna, se https://www.instructables.com/id/Christmas-Star-LE…I år gjorde jag en större stjärna av en tråd av 50 neopixlar (5V WS2811). Denna större stjärna hade fler mönster (jag lägger fortfarande till och förbättrar
Minska batteriförbrukningen för Digispark ATtiny85: 7 steg
Minska batteriförbrukningen för Digispark ATtiny85: eller: Att köra en Arduino med en 2032 myntcell i 2 år. Genom att använda Digispark Arduino Board ur lådan med ett Arduino -program drar den 20 mA vid 5 volt. Med en 5 volts powerbank på 2000 mAh kommer den bara att fungera i 4 dagar
ATTiny85 kondensatormätare: 4 steg
ATTiny85 kondensatormätare: Denna instruktion är för en kondensatormätare baserad på ATTiny85 med följande funktioner. Baserat på ATTiny85 (DigiStamp) SSD1306 0.96 " OLED DisplayFrekvensmätning för kondensatorer med lågt värde 1pF - 1uF med 555 oscillator Laddningstid
ATtiny85 Wearable Vibrating Activity Tracking Watch & Programming ATtiny85 With Arduino Uno: 4 Steps (with Pictures)
ATtiny85 Wearable Vibrating Activity Tracking Watch & Programming ATtiny85 With Arduino Uno: How to make the wearable activity tracking watch? Detta är en bärbar pryl som är utformad för att vibrera när den upptäcker stagnation. Tillbringar du större delen av din tid på datorn som jag? Sitter du i timmar utan att inse det? Då är denna enhet f
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): 8 steg
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): ultraljudsgivare L298N Dc kvinnlig adapter strömförsörjning med en manlig DC-pin Arduino UNOBreadboardHur det fungerar: Först laddar du upp kod till Arduino Uno (det är en mikrokontroller utrustad med digital och analoga portar för att konvertera kod (C ++)