Sisällysluettelo:

Ohjelmoitava LED: 6 vaihetta (kuvien kanssa)
Ohjelmoitava LED: 6 vaihetta (kuvien kanssa)

Video: Ohjelmoitava LED: 6 vaihetta (kuvien kanssa)

Video: Ohjelmoitava LED: 6 vaihetta (kuvien kanssa)
Video: Etsitään etuja ja haittoja Opel Insigniassa. Tekstitykset! 2024, Heinäkuu
Anonim
Ohjelmoitava LED
Ohjelmoitava LED

Eri LED -valojen, vilkkuvien LED -valojen ja vastaavien ohjeiden innoittamana halusin tehdä oman versioni mikro -ohjaimella ohjattavasta LED -valosta. Tämä uudelleenohjelmointi voidaan tehdä valolla ja varjolla, esim. Voit käyttää taskulamppua. Tämä on ensimmäinen ohjeeni, kaikki kommentit tai korjaukset ovat tervetulleita. Pahoittelut laadusta.

Vaihe 1: Näin se toimii

Lähdönä käytetään LEDiä. Tulona käytin LDR: ää, valosta riippuvaa vastusta. Tämä LDR muuttaa vastustaan, kun se vastaanottaa enemmän tai vähemmän valoa. Vastusta käytetään sitten analogisena tulona mikroprosessoreille ADC (analoginen digitaalimuunnin).

Säätimellä on kaksi toimintatilaa, joista toinen on sarjan tallentamiseen ja toinen tallennetun jakson toistamiseen. Kun ohjain havaitsee kaksi kirkkauden muutosta puolen sekunnin kuluessa (tumma, kirkas, tumma tai päinvastoin), se siirtyy tallennustilaan. Uudelleenkoodaustilassa LDR: n tulo mitataan useita kertoja sekunnissa ja tallennetaan sirulle. Jos muisti loppuu, ohjain palaa toistotilaan ja alkaa toistaa tallennettua jaksoa. Koska tämän pienen ohjaimen muisti on hyvin rajallinen, 64 tavua (kyllä, tavua!), Ohjain pystyy tallentamaan 400 bittiä. Tilaa riittää 10 sekunniksi, ja näytteitä on 40.

Vaihe 2: Materiaalit ja työkalut

Materiaalit ja työkalut
Materiaalit ja työkalut
Materiaalit ja työkalut
Materiaalit ja työkalut

Materiaalit- 2 x 1K vastus- 1 x LDR (valosta riippuva vastus), esim. M9960- 1 x Pienvirta-LED, 1.7V, 2ma- 1 x Atmel ATtiny13v, 1KB flash RAM, 64 tavua RAM, 64 tavua EEPROM, [email protected] 1 x CR2032, 3V, 220mAh - juotoslanka- leipälevy- AVR-ohjelmoija- 5 V: n virtalähde- yleismittari Ohjelmisto- Eclipse- CDT-laajennus- WinAVRKustannusten pitäisi olla alle 5 dollaria ilman työkaluja. Käytin ATtiny13v: tä, koska tämä ohjainperheen versio pystyy toimimaan 1,8 V: n jännitteellä. Tämä mahdollistaa piirin käytön hyvin pienellä akulla. Jotta se toimisi hyvin pitkään, päätin käyttää matalan virran LEDiä, joka saavuttaa täyden kirkkauden jo 2m.

Vaihe 3: Kaaviot

Kaaviot
Kaaviot

Muutamia kommentteja kaaviosta. Reset -tuloa ei ole kytketty. Tämä ei ole paras käytäntö. Parempi olisi käyttää 10K vastusta vetämällä. Mutta se toimii hyvin minulle ilman ja se säästää vastusta. Pidäkseni piirin mahdollisimman yksinkertaisena käytin sisäistä oskillaattoria. Tämä tarkoittaa, että säästämme kristallin ja kaksi pientä kondensaattoria. Sisäinen oskillaattori antaa ohjaimen toimia 1,2 MHz: llä, mikä on enemmän kuin riittävä nopeus tarkoitukseemme. Jos päätät käyttää muuta virtalähdettä kuin 5 V tai käyttää muita LED -valoja, sinun on laskettava vastus R1. Kaava on: R = (virtalähde V - LED V) / 0,002A = 1650 ohmia (virtalähde = 5 V, LED V = 1,7 V). Käyttämällä kahta pienvirtaista LEDiä yhden sijasta kaava näyttää tältä: R = (virtalähde V - 2 * LED V) / 0,002A = 800 ohmia. Huomaa, että sinun on säädettävä laskutoimitusta, jos valitset toisen tyyppisen LED -valon. Vastuksen R2 arvo riippuu käytetystä LDR -arvosta. 1Kohm toimii minulle. Saatat haluta käyttää potentiometriä löytääksesi parhaan arvon. Cicuitin pitäisi pystyä havaitsemaan valon muutokset normaalissa päivänvalossa. Virran säästämiseksi PB3 on asetettu korkealle vain, jos mittaus suoritetaan. Päivitys: kaavio oli harhaanjohtava. Alla on oikea versio. Kiitos, dave_chatting.

Vaihe 4: Kokoa prototyyppitaululle

Kokoa prototyyppitaululle
Kokoa prototyyppitaululle
Kokoa prototyyppitaululle
Kokoa prototyyppitaululle

Jos haluat testata piiriäsi, leipälauta on erittäin kätevä. Voit koota kaikki osat juottamatta mitään.

Vaihe 5: Ohjelmoi piiri

Ohjelmoi piiri
Ohjelmoi piiri
Ohjelmoi piiri
Ohjelmoi piiri

Säädin voidaan ohjelmoida eri kielillä. Eniten käytettyjä ovat Assembler, Basic ja C. Käytin C: tä, koska se vastaa tarpeitani parhaiten. Olin tottunut C: hen kymmenen vuotta sitten ja pystyin elvyttämään osan tiedosta (no, vain osan …). Ohjelman kirjoittamiseen suosittelen Eclipseä CDT -laajennuksen kanssa. Hanki eclipse täältä https://www.eclipse.org/ ja laajennus täältä https://www.eclipse.org/cdt/. C -kielen kääntämiseksi AVR -mikro -ohjaimiin tarvitset ristikääntäjän. Onneksi meillä on satama kuuluisasta GCC: stä. Sitä kutsutaan WinAVR: ksi ja se löytyy täältä https://winavr.sourceforge.net/. Erittäin hyvä opetusohjelma AVR-ohjaimien ohjelmoimiseksi WinAVR: llä on täällä https://www.mikrocontroller.net/articles/AVR-GCC- Opetusohjelma. Anteeksi, se on saksankielinen, mutta saatat löytää tuhansia opetusohjelmasivuja kyseiseltä kieleltä omalla kielelläsi, jos etsit niitä. Tämä voidaan tehdä kytkemällä tietokoneesi piiriin Internet -palveluntarjoajan (järjestelmän ohjelmoija) avulla tai käyttämällä omia ohjelmoijia. Käytin omaa ohjelmoijaa, koska se helpottaa piiriä säästämällä johtoja ja pistoketta. Haittana on, että sinun on vaihdettava ohjain piirin ja ohjelmoijan välillä aina, kun haluat päivittää ohjelmistosi. Ohjelmoijani tulee osoitteesta https://www.myavr.de/ ja käyttää USB -liitäntää muistikirjaani. Ympärillä on monia muita, ja voit jopa rakentaa sen itse. Siirron yhteydessä käytin avrdude -nimistä ohjelmaa, joka on osa WinAVR -jakelua. Esimerkki komentoriviltä voi näyttää tältä:

avrdude -F -p t13 -c avr910 -P com4 -U flash: w: flickled. hex: iLiitteenä saat lähteen ja kootun heksatiedoston.

Vaihe 6: Juotos

Juotos
Juotos

Jos piirisi toimii leipälevyllä, voit juottaa sen.

Tämä voidaan tehdä PCB: llä (painettu piirilevy), prototyyppilevyllä tai jopa ilman levyä. Päätin tehdä sen ilman, koska piiri koostuu vain muutamista komponenteista. Jos et tunne juottamista, suosittelen etsimään ensin juotosopetusohjelman. Juotostaitoni ovat hieman ruosteisia, mutta luulen, että ymmärrät ajatuksen. Toivon että nautit siitä. Alex

Suositeltava: