Inhoudsopgave:
Video: Generieke Switch Kaper: 3 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:19
In dit artikel wordt beschreven hoe u een solid-state microcontroller-apparaat bouwt dat fysieke schakelaars bestuurt. Het is erg goedkoop om te maken (4 $ of zo), ervan uitgaande dat je een microcontroller-programmeur hebt. Het circuit zelf is van triviale complexiteit.
Dit project is heel eenvoudig en omvat geen verbluffende nieuwe technieken. Het zou een goed eerste microcontrollerproject zijn. De broncode van de assembly wordt in dit artikel aan u verstrekt. Ik heb een hele toffe baas op het werk. Soms houden we ervan om praktische grappen met elkaar uit te halen. Helaas voor hem ben ik een wetenschapper. Mijn doel hier is om verschillende apparaten op de werkplek voor korte tijd op mysterieuze wijze aan te zetten. Radio's, luidruchtige printers, zelfs die vervelende muzikale verjaardagskaarten verstopt in een alledaags object. Bovendien is het project een voorbeeld van hoe je met een AVR zwaardere belastingen bestuurt dan de uitgangspinnen zelf aankunnen. Dit is een breed scala aan dingen, omdat de uitgangspinnen je maar een kleine spanning en een zeer beperkte stroom geven. Dit circuit zou kunnen worden uitgebreid met een relais om inderdaad enkele zeer zware belastingen te regelen.
Stap 1: Ontwerp en circuit
Voor dit project kunt u bijna elke microcontroller, 5v-spanningsregelaar en NPN-transistor gebruiken. Ik gebruikte:
1x ATtiny26L-8PU (~2$) 1x TL780 5v spanningsregelaar (~0.7$) 1x N2222 transistor (~0.07$) 1x 9v batterij, of 12v afstandsbedieningsbatterij om ruimte te besparen… en natuurlijk mijn vertrouwde STK500, nu met ZIF stopcontacten toegevoegd! Het basisontwerp is dit: de microcontroller doorloopt twee timinglussen. Een lange lus om te bepalen wanneer het apparaat moet worden ingeschakeld en een korte lus om te bepalen hoe lang het apparaat moet worden ingeschakeld. Wanneer het tijd is om problemen te veroorzaken, stuurt de microcontroller een logische high-out pin 14 (Least Significant Bit of PORTA). Dit ontsteekt de transistor. Als je de klemmen hebt aangesloten op de draden van een schakelaar, zorgt dit ervoor dat de weerstand over de schakelaar plotseling daalt van zeer hoog naar minder dan 1 ohm, wat voor de meeste apparaten voldoende is om de schakelaar aan te beschouwen. Houd er rekening mee dat transistors ook diodes zijn, dus als het niet werkt… de polariteit van de klemmen is waarschijnlijk verkeerd, verwissel ze! Dit apparaat heeft ook een behoorlijke 9v-batterij nodig, zeg met meer dan 8v potentieel over … behalve dat het niet veel stroom verbruikt. Er zijn veel ongebruikte pinnen, dus je zou ze natuurlijk kunnen gebruiken om meer schakelaars te bedienen voor meer chaos, maar dit was voldoende voor mijn doeleinden. De volgende stap is de broncode die ik heb geschreven om dit ding op gang te krijgen. De standaardlengtes voor de toestanden "aan" en "uit" zijn respectievelijk ongeveer 10 seconden en 13 minuten. Er zijn opmerkingen in de code over hoe u deze waarden kunt wijzigen. Tot slot, excuseer het uitgebreide gebruik van de "nop"-functie (het besteedt een CPU-cyclus die niets doet) om de timers aan te passen. Het is onelegant omdat het de rjmp-functie kan verbreken als je niet voorzichtig bent met hoeveel je gebruikt!
Stap 2: Broncode
BEGIN:
. INCLUSIEF "tn26def.inc"; Definitie bestand. Google ernaar als je een kopie nodig hebt. clr r30 clr r29 clr r28 clr r27 ldi r28, 0b00000000 ldi r27, 0b11111111 ldi r26, 0b00000000 clr r25 uit DDRA, r27 uit PORTA, r28 TIMER: inc r30 nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop cpi r30, 0b11111111 breq TIMER2 rjmp TIMER TIMER2: nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop inc r29 cpi111 r29, nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop inc r25 cpi r25, 0b11111111;Verlaag dit getal om de "off" tijd te verkorten breq FUNC rjmp TIMER FUNC: nop nop cpi r28, 0x00 breq FUNC2 dec r28 clr r30 clr r29 clr r25 out PORTA, r28 rjmp TIMER FUNC2: nop nop inc r28 out PORTA, r28 clr r25 clr r30 clr r29 rjmp TIMER4 np nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nee nop nop nop nop nop nop nop nop cpi r30, 0b11111111 breq TIMER5 rjmp TIMER4 TIMER5: nop nop nop nop nop nop nop nop nop nop nop nop inc r29 cpi r29, 0b11111 111 breq TIMER6 rjmp TIMER4 TIMER6: inclusief r25 cpi r25, 0b00000011; Verhoog dit getal om de "aan" tijd te verhogen breq FUNC rjmp TIMER4
Stap 3: Laatste opmerking
Veel plezier, maar onthoud dat de transistor limieten heeft in termen van hoeveel stroom je er doorheen kunt pompen. Dat betekent geen netspanning! Naast het feit dat het de transistor erg snel zou overbelasten, zal dit apparaat wisselsignalen niet goed regelen… tenzij je de hieronder beschreven modificatie toepast *en* een relais toevoegt:Als je je zorgen maakt over de klempolariteit, sluit dan gewoon een tweede transistor aan met de basisplaat verbonden met dezelfde bron als de eerste transistor, maar met de collector en emitter in de tegenovergestelde configuratie. Op die manier, ongeacht hoe u de klemmen bevestigt, zal een logische high die uit de microcontroller komt altijd de schakelaar "aanzetten". Houd er rekening mee dat de lekstroom in dit systeem voldoende kan zijn om enkele gevoelige schakelaars zoals toetsenbordmatrices te activeren. Mogelijk moet u voor deze toepassing een weerstand in serie toevoegen. Onthoud dat je het doelapparaat van stroom kunt voorzien in plaats van een batterij te gebruiken. Eindelijk… Ik installeerde het apparaat in een oude rekenmachine, het type dat printfuncties heeft. Ik heb de toetsenbordmatrix reverse-engineered met behulp van een paperclip om te bepalen welke IC-pinnen bij aansluiting de papierinvoer zouden veroorzaken, en de juiste pinnen met het apparaat verbonden. Vervolgens heb ik de schakelaar uitgeschakeld waarmee je de afdrukfunctie kunt uitschakelen. Ik beschouw de machine als behoorlijk ondermijnd. Het zet de nogal luidruchtige papierinvoer elke 10 minuten, gedurende 10 seconden, aan wanneer het apparaat aan staat. Het werkte ook goed met het circuit van een van die hyper-onaangename muzikale verjaardagskaarten. Mijn werkplek is nu bizarder!
Aanbevolen:
Shop Vac Auto Switch (geen Arduino nodig): 7 stappen
Shop Vac Auto Switch (geen Arduino nodig): Zoals veel hobbyistische houtbewerkers, heb ik een winkelvacuüm aan mijn tafelzaag bevestigd en elke keer dat ik een zaagsnede wil uitvoeren, moet ik deze aanzetten voordat ik de zaag aanzet. Dit ziet er misschien gek uit, maar het doet pijn om de shop vac aan en uit te zetten zoveel
DIY walkie-talkie met generieke 433 MHz RF-modules - Ajarnpa
DIY Walkie-Talkie met generieke 433MHz RF-modules: In dit project laat ik u zien hoe u generieke 433MHz RF-modules van Ebay kunt gebruiken om een functionele Walkie-Talkie te maken. Dat betekent dat we verschillende RF-modules gaan vergelijken, wat leren over een klasse d-versterker en uiteindelijk de Walkie-Talkie bouwen
Hergebruik een HP WebCam 101 Aka 679257-330 webcammodule als een generieke USB-webcam - Ajarnpa
Hergebruik een HP WebCam 101 Aka 679257-330 webcammodule als een generieke USB-webcam: ik wil mijn 14 jaar oude Panasonic CF-18 opfleuren met een gloednieuwe webcam, maar Panasonic ondersteunt die geweldige machine niet meer, dus ik moet gebruik de grijze stof voor iets makkelijkers dan b&b (bieren & hamburgers). Dit is het eerste deel
Een generieke USB-autolader wijzigen om een 3e generatie iPod Nano op te laden - Ajarnpa
Een generieke USB-autolader aanpassen om een 3e generatie iPod Nano op te laden: Ik heb een 3e generatie iPod Nano. Het detecteert dat het is aangesloten, maar weigert op te laden vanaf een generieke auto->USB-oplaadadapter, maar ik had geen zin om een adapterkabel of nog een andere oplader speciaal voor de iPod te kopen, dus ik heb er een aangepast die ik al
Verander een generieke plastic gadget in iets mooiers - Ajarnpa
Verander een generieke plastic gadget in iets mooiers: Motivatie: In de zomer ben ik aan het surfen of werk aan projecten rond onze kleine tuin/boerderij. De winter staat voor de deur hier in Boston en ik ben klaar om de lange lijst met projecten die ik heb uitgesteld voor de 'binnenmaanden' aan te pakken. Ik heb echter