Cuprins:

Construiți-vă propriul (ieftin!) Controler multifuncțional pentru cameră wireless: 22 de pași (cu imagini)
Construiți-vă propriul (ieftin!) Controler multifuncțional pentru cameră wireless: 22 de pași (cu imagini)

Video: Construiți-vă propriul (ieftin!) Controler multifuncțional pentru cameră wireless: 22 de pași (cu imagini)

Video: Construiți-vă propriul (ieftin!) Controler multifuncțional pentru cameră wireless: 22 de pași (cu imagini)
Video: FEMEIA De 399 De ANI ! #shorts 2024, Iulie
Anonim
Construiți-vă propriul (ieftin!) Controller fără fir multifuncțional al camerei
Construiți-vă propriul (ieftin!) Controller fără fir multifuncțional al camerei
Construiți-vă propriul (ieftin!) Controller fără fir multifuncțional al camerei
Construiți-vă propriul (ieftin!) Controller fără fir multifuncțional al camerei
Construiți-vă propriul (ieftin!) Controller fără fir multifuncțional al camerei
Construiți-vă propriul (ieftin!) Controller fără fir multifuncțional al camerei

Introducere Ți-a plăcut vreodată să-ți construiești propriul controler de cameră? NOTĂ IMPORTANTĂ: Condensatoarele pentru MAX619 sunt 470n sau 0,47u. Schema este corectă, dar lista de componente a fost greșită - actualizată. Aceasta este o intrare în competiția Digital Days, așa că, dacă vi se pare utilă, vă rugăm să evaluați / votați / comentați favorabil! Dacă îți place cu adevărat și ești un poticnitor, apasă pe „îmi place!”:) Actualizare: prezentat pe hackaday! hackaday.com/2009/10/13/a-different-breed-of-camera-controllers/ Actualizare: noi fotografii ale declanșatorului laser în acțiune! Actualizare: Premiul I = D, mulțumesc pentru vot și / sau rating! Această instrucțiune este în principal în beneficiul utilizatorilor SLR care doresc să obțină un pic mai mult kilometraj din camerele lor, cu toate acestea, dacă există vreun punct și filmează cu interfețe IR, ați putea găsi acest lucru interesant. Cu siguranță, acest lucru va funcționa și (cu un pic de modificare) cu hacks-ul camerei, unde puteți conecta ieșirile logice la terminalele de declanșare ale camerei. Acest lucru a început ca un tutorial complet, dar din cauza unor constrângeri neașteptate pe care le-am întâlnit mai târziu, poate fi mai mult un ghid cu privire la modul de realizare a diferitelor lucruri - vă voi lăsa deseori alegerea modului în care ați putea face lucruri care Cred că este un mod mai bun de a face lucrurile decât să spui orbește „trebuie să faci asta”. Gândiți-vă la aceasta ca la o lecție în proiectarea controlerului camerei. Am furnizat schemele și codul complet, astfel încât să îl puteți copia întotdeauna. Va fi un caz simplu de a transfera designul pe o placă și de a adăuga LCD pentru majoritatea oamenilor. Am trecut prin modul de panou, deoarece procesul este foarte asemănător și permite corectarea greșelilor înainte ca designul să fie permanent! Proiecte de senzori incluși - lumină, sunet (mult mai mult posibil!) Cost total - sub 25 GBP (cu excepția instrumentelor) Afișaj LCD pentru schimbarea ușoară a setărilor Compatibil cu Nikon / Canon (codificat), suport potențial (netestat) pentru Olympus / Pentax Fără firmware modificarea necesară Utilizează IR, deci este atât wireless, cât și nu vă deteriorează camera. Am avut ideea pentru asta după ce am stat afară în frig făcând clic pe telecomandă ore întregi. Făceam un interval de 8 secunde pentru aproximativ 1000 de fotografii. M-am gândit, hei, este doar un LED IR, nu-i așa? De ce nu pot să-l reproduc și să-mi fac propria telecomandă cu o întârziere încorporată? Am aflat apoi (oarecum jenat, pentru că am crezut că am avut o undă cerebrală masivă) că s-a făcut acest lucru și că există chiar și câteva instructabile pe această temă. În cazul în care implementarea mea diferă de majoritatea intervalometrelor și a telecomenzilor DIY este că permite o mulțime de personalizare și modularitate, este compatibilă atât cu Nikon / Canon (și probabil cu altele mai târziu), cât și cu capacitatea de a face o fotografie pe un anumit declanșator. Ideea este simplă. Doriți să faceți o fotografie cu ceva destul de rapid (limitat în prezent de întârzierea declanșatorului, pentru mine 6ms). Există o varietate de metode pentru a face acest lucru: 1. Încercare și eroare încercați să faceți fotografia în momentul potrivit 2. Îmbunătățire de încercare și eroare înnegriți camera, puneți camera pe bec (obturator deschis) și declanșați un bliț la momentul potrivit 3. Cumpărați un controler de declanșare dedicat care are un fel de senzor audio / luminos pentru a face poza la comanda dvs. 4. Construiți unul singur! Bine, 1 și 2 sunt în regulă pentru a vă deranja și pot produce imagini foarte bune. Dar ceea ce vă voi arăta este că este posibil să construiți un circuit care să vă ofere rezultate consecvente de nenumărate ori. Cel mai important, în aceste perioade strânse, costul este mai mic decât modelele alternative (unii oameni au produs truse care fac astfel de lucruri, dar costă o avere vezi linkurile). Versatilitatea designului este următoarea: Dacă senzorul dvs. generează o tensiune de ieșire între 0 și 5V, îl puteți utiliza pentru a vă declanșa camera! Pe față, aceasta este o afirmație plictisitoare, dar odată ce începeți să înțelegeți implicațiile, devine foarte puternică. Prin simpla monitorizare a unui nivel de tensiune, declanșatorul dvs. ar putea fi bazat pe lumină (LDR), pe sunet (microfon sau ultrasunete), pe bază de temperatură (termistor) sau chiar pe un potențiometru simplu. De fapt, cam orice. Puteți chiar să conectați circuitul la un alt controler și cu condiția să vă ofere o ieșire logică, astfel puteți declanșa din acesta. Singura limitare majoră a designului în prezent este că funcționează numai cu interfețe IR, ar fi destul de simplu să modificați software-ul și hardware-ul pentru a ieși prin mini-USB sau orice fel de interfață este necesară. Notă: Cod sursă: Am furnizat câteva aplicații la pasul 13. Codul pe care îl rulez de pe controlerul meu acum este acolo într-un fișier hexagonal împreună cu fișierul principal c și dependențele sale. Puteți pur și simplu să rulați codul meu dacă nu sunteți sigur cu privire la compilare. De asemenea, am inclus câteva exemple de cod pe care le puteți utiliza în diferiți pași (sunt denumite evident ca remote_test, intervalometer test și adc test. Dacă mă refer la cod într-un pas, șansele sunt că este acolo. EDIT: O actualizare despre baloane popping - se pare că am fost un pic miop când am spus că poți fotografia cu ușurință fotografii cu baloane popping. Se pare că pielea balonului mediu călătorește atât de repede încât va fi apărut complet până la momentul în care camera ta trage. este o problemă cu majoritatea camerelor, NU cu controlerul (care detectează ADC la o rată de aproximativ 120kHz). Modul în care se face acest lucru este să folosiți un bliț declanșat, care este posibil dacă adăugați un cablu suplimentar și un alt circuit mic. ați spus, în teorie, ați putea folosi altceva pentru a-l deschide și a juca cu întârzierea (sau chiar pentru a schimba codul de întârziere pentru a include microsecunde). Doar mutarea pistolului ar oferi o întârziere rudimentară de câteva microsecunde s. Din nou, îmi cer scuze pentru asta, voi juca în seara asta dacă pot să pun mâna pe niște baloane, dar există încă multe utilizări pentru un declanșator audio, cum ar fi artificiile! Am pus mai jos un interval de timp rapid și murdar pentru a arăta că funcționează totuși:) Nu uitați să citiți, să evaluați și / sau să votați! Salutări, Josh Disclaimer În cazul puțin probabil în care ceva merge oribil în neregulă sau într-un fel îți împiedici aparatul foto / dremel pisica ta, nu sunt responsabil pentru nimic. Începând un proiect bazat pe acest instructable, acceptați acest lucru și continuați pe propriul dvs. risc. Dacă faceți unul dintre acestea sau utilizați instructable-ul meu pentru a vă ajuta - vă rog să-mi trimiteți un link / fotografie pentru a-l putea include aici! Răspunsul a fost copleșitor până acum (cel puțin după standardele mele), așa că ar fi minunat să vedem cum îl interpretează oamenii. Lucrez la revizuirea 2 ca tip;)

Pasul 1: Câteva gânduri inițiale …

Deci, cum vom construi acest lucru? Microcontroler Inima și sufletul acestui proiect este un AVR ATMega8. Este în esență o versiune ușor tăiată a cipului ATMega168 pe care îl folosește Arduino. Este programabil în C sau Assembly și are o varietate de caracteristici cu adevărat utile pe care le putem folosi în avantajul nostru. "28 pini, dintre care majoritatea sunt de intrare / ieșire (i / o)" Convertor analogic digital la bord "Consum redus de energie „3 temporizatoare la bord” Sursă de ceas internă sau externă „O mulțime de biblioteci de coduri și eșantioane online Aveți o mulțime de pini este bine. Putem interfața cu un ecran LCD, avem 6 intrări de butoane și încă mai avem suficient pentru ca un LED IR să poată trage și câteva LED-uri de stare. Seria de procesoare Atmel AVR are mult sprijin online și există o mulțime de tutoriale a început (voi trece pe scurt acest lucru, dar există tutoriale dedicate mai bine) și o grămadă de coduri pentru a analiza. Pentru referință, voi codifica acest proiect în C folosind biblioteca AVR-LibC. Aș fi putut merge cu PIC cu ușurință pentru a face acest lucru, dar AVR este bine acceptat și toate exemplele pe care le-am găsit pentru telecomenzi au fost bazate pe AVR! Afișaj LCD sunt două tipuri principale de afișare, grafică și alfanumerică. Ecranele grafice au o rezoluție și puteți pune pixeli oriunde doriți. Dezavantajul este că sunt mai greu de codat (deși există biblioteci). Afișajele alfanumerice sunt pur și simplu unul sau mai multe rânduri de caractere, ecranul LCD are un depozit de caractere de bază la bord (adică alfabetul, unele numere și simboluri) și este relativ ușor să scoată șiruri și așa mai departe. Dezavantajul este că nu sunt la fel de flexibili și afișarea graficelor este practic imposibilă, dar se potrivește scopului nostru. De asemenea, sunt mai ieftine! Alfanumericele sunt clasificate după numărul lor de rânduri și coloane. 2x16 este destul de comun, cu două rânduri de 16 caractere, fiecare caracter fiind o matrice 5x8. Puteți obține și 2x20 s, dar nu văd nevoia. Cumpărați orice vă simțiți confortabil. Am ales să folosesc un ecran LCD retroiluminat roșu (vreau să îl folosesc pentru astrofotografie, iar lumina roșie este mai bună pentru vederea nocturnă). Puteți merge fără lumină de fundal - este în întregime alegerea dvs. Dacă alegeți un traseu fără iluminare, veți economisi energie și bani, dar s-ar putea să aveți nevoie de o torță în întuneric. Când căutați un ecran LCD, ar trebui să vă asigurați că acesta este controlat de HD44780. Este un protocol standard industrial dezvoltat de Hitachi și există o mulțime de biblioteci bune pe care le putem folosi pentru a scoate date. Modelul pe care l-am cumpărat a fost un JHD162A de la eBay. InputInput se va face prin butoane (simplu!). Am ales selectarea modului 6, ok / shoot și 4 direcții. Merită, de asemenea, să obțineți un alt buton mic pentru resetarea micro-ului în caz de accident. În ceea ce privește intrarea de declanșare, unele idei de bază sunt un rezistor dependent de lumină sau un microfon electret. Aici puteți deveni creativi sau zgârciți în funcție de buget. Senzorii cu ultrasunete vor costa puțin mai mult și vor necesita o programare suplimentară, dar puteți face unele lucruri foarte îngrijite cu ei. Majoritatea oamenilor vor fi mulțumiți de un microfon (probabil cel mai util senzor general), iar electrii sunt foarte ieftini. Rețineți că va trebui să fie și el amplificat (dar voi trece mai departe peste asta). imagini, trebuie să interacționăm cu camera și pentru asta avem nevoie de o sursă de lumină care poate produce radiații infraroșii. Din fericire, există o mulțime de LED-uri care fac acest lucru și ar trebui să încercați să luați unul de putere rezonabilă. Unitatea pe care am ales-o are un curent nominal de 100mA max (majoritatea LED-urilor sunt în jur de 30mA). De asemenea, ar trebui să aveți grijă să observați lungimea de undă de ieșire. Lumina cu infraroșu se află în partea de lungime de undă mai mare a spectrului EM și ar trebui să căutați o valoare de aproximativ 850-950nm. Majoritatea LED-urilor IR au tendința spre sfârșitul anului 950 și este posibil să vedeți un pic de lumină roșie atunci când este pornită, aceasta nu este o problemă, dar spectrul este irosit, așa că încercați să vă apropiați de 850, dacă este posibil. acest? Ei bine, va fi portabil, așa că bateriile! Am ales să folosesc 2 baterii AA care sunt apoi mărite până la 5V. Voi trece în revistă raționamentul din spatele acestui lucru în următoarele secțiuni. „Carcasă și construcții” Cum depindeți acest lucru depinde în totalitate de dvs. Am decis să folosesc panouri pentru circuit după prototipare, deoarece este ieftin și flexibil și economisește proiectarea unui PCB personalizat. Am furnizat schemele, astfel încât să aveți libertatea de a vă crea propriul aspect PCB - deși dacă o faceți, aș fi recunoscător să aveți o copie! Din nou, carcasa este în întregime alegerea dvs., trebuie să fie capabil să se potrivească ecranului, butoanelor (într-un aspect destul de intuitiv dacă este posibil) și bateriile. Pe măsură ce plăcile de circuite merg, aceasta nu este atât de complicată, multe conexiuni sunt pur și simplu la lucruri precum butoanele / LCD.

Pasul 2: Managementul energiei

Gestionare a energiei
Gestionare a energiei

Managementul energiei Pentru un proiect ca acesta este evident că portabilitatea ar trebui să fie un aspect cheie. Bateriile sunt deci alegerea logică! Acum, pentru dispozitivele portabile, este destul de important să alegeți o sursă de baterie care să fie reîncărcabilă sau ușor disponibilă. Cele două opțiuni principale sunt bateria PP3 de 9V sau bateriile AA. Sunt sigur că unii oameni vor presupune că o baterie de 9V este cea mai bună opțiune, deoarece hei, 9V este mai bun decât 3 nu? Ei bine, nu în acest caz. Bateriile de 9V, deși sunt foarte utile, își produc tensiunea în detrimentul duratei de viață a bateriei. Măsurată în mAh (miliamp ore), această evaluare vă spune teoretic cât va dura o baterie să funcționeze la 1mA în ore (deși luați-o cu un vârf de sare, acestea sunt adesea în condiții ideale, cu sarcină redusă). Cu cât ratingul este mai mare, cu atât va dura mai mult bateria. Bateriile de 9V sunt evaluate până la aproximativ 1000mAh. AA alcaline, pe de altă parte, au de aproape trei ori mai mult la 2900mAh. Reîncărcabilele NiMH pot atinge acest lucru, deși 2500mAh este o cantitate rezonabilă (rețineți că bateriile reîncărcabile funcționează la 1,2V, nu la 1,5!). Ecranul LCD are nevoie de o intrare de 5V (± 10%), iar AVR (microcontrolerul) are aproximativ același lucru (deși poate merge până la 2,7 pentru viteze de ceas cu frecvență joasă). De asemenea, avem nevoie de o tensiune destul de stabilă, dacă fluctuează în jurul acesteia, ar putea cauza probleme cu microcontrolerul. Aveți opțiunea de a utiliza un regulator de tensiune simplu cu 3 pini precum LM7805 (seria 78, ieșire +5 volți) sau un circuit integrat mic. Utilizarea unui regulator simplu Dacă alegeți să mergeți cu această opțiune, trebuie să purtați un câteva puncte în minte. În primul rând, regulatoarele cu trei pini au nevoie aproape întotdeauna de o intrare mai mare decât ieșirea lor. Apoi scad tensiunea la valoarea dorită. Dezavantajul este că au o eficiență îngrozitoare (50-60% merge bine). Dezavantajul este că sunt ieftine și vor funcționa cu o baterie de 9V, puteți alege un model de bază pentru 20 de pence în Marea Britanie. De asemenea, trebuie să aveți în vedere faptul că regulatoarele au o tensiune de scădere - decalajul minim dintre intrare și ieșire. Puteți cumpăra regulatoare speciale LDO (Low DropOut) care au abandon de aproximativ 50mV (comparativ cu 1-2V cu alte modele). Cu alte cuvinte, căutați LDO-uri cu o ieșire de + 5 V. Utilizarea unui circuit integrat Modul ideal de parcurs este un regulator de comutare. Acestea vor fi, în scopul nostru, în mod normal pachete cu 8 pini care preiau o tensiune și ne oferă o ieșire reglementată la o eficiență ridicată - aproape 90% în unele cazuri. Puteți obține convertoare step up sau step down (respectiv boost / buck) în funcție de ceea ce doriți să introduceți, alternativ, puteți cumpăra regulatoare care vor lua fie deasupra sau sub ieșirea dorită. Cipul pe care îl folosesc pentru acest proiect este un MAX619 +. Este un regulator de 5V, care ia 2 AA-uri (gama de intrare este de 2V-3,3V) și oferă o ieșire constantă de 5V. Are nevoie doar de patru condensatoare pentru a funcționa și este foarte eficient din punct de vedere spațial. Cost - 3.00 inclusiv majusculele. Probabil că merită să te sperie doar pentru a folosi puțin mai mult bateriile. Singurul dezavantaj major este că nu este protejat împotriva scurtcircuitului, deci dacă există o supratensiune curentă, fiți atenți! Acest lucru este rezonabil banal pentru a rezolva cu un circuit suplimentar, totuși: Un alt design util de cip - deși o soluție nu este la fel de îngrijită este LT1307. Din nou, un regulator de 5V, dar poate lua o varietate de intrări și are lucruri utile, cum ar fi detectarea bateriei reduse. Costă ceva mai mult la aproape 5 cu inductoare, condensatori mari și rezistențe. Șine de tensiune Vom folosi două șine de tensiune principale (plus un teren comun). Primul va fi 3V de la baterie, acesta va fi folosit pentru alimentarea LED-urilor și a altor componente de putere relativ mare. MAX619-ul meu este evaluat doar până la 60mA (deși maximul absolut este de 120mA), deci este mai ușor să conectați microcontrolerul la un MOSFET pentru a controla orice LED-uri. MOSFET nu captează aproape curent și acționează ca o pauză în circuit atunci când intrarea porții este sub aproximativ 3V. Când microcontrolerul trimite 1 logic pe pin, tensiunea este de 5V și FET se aprinde, acționând doar ca un scurtcircuit (adică o bucată de sârmă). Sina de 5V va alimenta LCD-ul, microcontrolerul și orice circuite de amplificare pentru senzori de intrare Consum de energie Dacă ne uităm la diverse fișe tehnice, observăm că AVR nu ia mai mult de 15-20mA la sarcină maximă. LCD-ul durează doar 1mA pentru a funcționa (cel puțin când am testat, buget pentru 2). Cu lumina de fundal aprinsă, chiar depinde de dvs. să decideți. Conectarea directă la șina de 5V (am încercat) este bine, dar asigurați-vă că are un rezistor la bord (urmați urmele de pe PCB) înainte de a face acest lucru. A atras 30mA în acest fel - teribil! Cu un rezistor de 3,3 k este încă vizualizabil (perfect pentru fotografii astro) și atrage doar 1mA. Puteți obține în continuare o luminozitate decentă utilizând un 1k sau altfel. Sunt bine cu desenul meu sub 2mA cu lumina de fundal aprinsă! Dacă doriți, este banal să adăugați un buton de luminozitate folosind un potențiometru de 10k. LED-ul IR ar putea dura maximum 100mA, dar am avut rezultate bune cu 60mA peste mine (experiment!). Apoi, puteți reduce la jumătate curentul respectiv, deoarece efectiv funcționați la un ciclu de funcționare de 50% (când LED-ul este modulat). Oricum, este aprins doar o fracțiune de secundă, așa că nu trebuie să ne facem griji în legătură cu acest lucru. Celelalte LED-uri cu care ar trebui să vă jucați, puteți constata că doar un curent de 10 mA este suficient pentru a vă oferi o luminozitate bună - cu siguranță arătați pentru LED-uri de putere redusă (cu excepția celui IR), nu proiectați o torță! Am ales să nu adaug un indicator de putere în circuitul meu, pur și simplu pentru că este o cantitate mare de curent, pentru o utilizare redusă. Utilizați comutatorul de pornire / oprire pentru a verifica dacă este pornit! drept cu totul pornit. Cu procesorul la ralanti de cele mai multe ori, acest lucru se va dubla / tripla cel puțin, deci nu ar trebui să vă schimbați bateriile foarte des. Puteți merge ieftin și bucurați-vă cu o baterie de 9V și un regulator LDO în detrimentul eficienței sau puteți plăti un pic mai mult și puteți utiliza un IC dedicat pentru ao face. Bugetul meu era încă sub 20 chiar și cu IC, așa că îl puteți renunța și mai mult, dacă aveți nevoie.

Pasul 3: O privire mai atentă la ATmega8

O privire mai atentă la ATmega8
O privire mai atentă la ATmega8

Pin Imagine 1 este diagrama pinout pentru ATMega8 (exact la fel ca 168/48/88, singura diferență este cantitatea de memorie la bord și opțiunile de întrerupere). Pin 1 - Resetare, ar trebui să fie ținut la tensiunea VCC (sau cel puțin logic 1). Dacă este împământat, dispozitivul va reseta soft Pin 2-6 - Port D, intrare / ieșire generală Pin 7 - VCC, tensiune de alimentare (+ 5V pentru noi) Pin 8 - GroundPin 9, 10 - XTAL, intrări de ceas extern (parte din portul B) Pin 11-13 Port D, intrare / ieșire generală Pin 14 - 19 Port B, intrare / ieșire generală Pin 20 - AVCC, tensiune de alimentare analogică (la fel ca VCC) Pin 21 - AREF, referință de tensiune analogică Pin 22 - GroundPin 23-28 Port C, intrare / ieșire generală Porturi I / O utilizabile: D = 8, C = 6, B = 6 Un total de 20 de porturi utilizabile este excelent, pentru simplitate ar trebui să vă grupați ieșirile fie în porturi (să zicem, D ca port de ieșire), fie în grupuri pe placă - s-ar putea să doriți ca ecranul LCD să ruleze din Portul C doar pentru a menține firele ordonate în acel colț. Există trei pini suplimentari care sunt necesari pentru programare. Acestea sunt MISO (18), MOSI (17) și SCK (19). Cu toate acestea, acestea vor acționa cu bucurie ca pini I / O, dacă este necesar. Toate AVR-urile au un oscilator intern de la care cipul își poate obține ceasul. Dezavantajul este că pot fluctua în jur de 10% cu temperatura / presiunea / umiditatea. Ce putem face pentru a combate acest lucru este să folosim un cristal de cuarț extern. Acestea sunt disponibile în orice fel, de la 32768kHz (ceas) la 20MHz. Am ales să folosesc un cristal de 4Mhz, deoarece oferă o viteză decentă, dar este destul de conservator de energie comparativ cu probabil 8Mhz +. De fapt, am scris prima versiune pentru a mă baza foarte mult pe răcirea procesorului în timp ce scade. Din nefericire, din cauza constrângerilor de timp, am întâmpinat unele probleme cu rularea ceasului extern și întreruperea utilizării cronometrelor. În esență, ar trebui să rescriu codul pentru a face față controlerului pur și simplu nu mă trezesc - ceea ce aș putea face, dar timpul este împotriva mea. Ca atare, dispozitivul atrage doar 20mA ish, astfel încât să puteți scăpa de el. Dacă sunteți cu adevărat pregătit pentru asta, atunci nu trebuie decât să jucați codul, tot ce trebuie să faceți este să ceasați intern și apoi să rulați Timer 2 în mod asincron folosind cristalul de 4 MHz pentru întârzieri mai precise. Este simplu de făcut, dar consumă mult timp. Cum funcționează este relativ simplu din exterior. O tensiune este eșantionată pe un pin (de la un senzor sau altă intrare), tensiunea devine convertită într-o valoare digitală între 0 și 1024. O valoare de 1024 va fi observată atunci când tensiunea de intrare este egală cu tensiunea de referință ADC. Dacă ne setăm referința la VCC (+ 5V), atunci fiecare divizie este 5/1024 V sau aproximativ 5mV. Astfel, o creștere de 5mV pe pin va crește valoarea ADC cu 1. Putem lua valoarea de ieșire ADC ca o variabilă și apoi lăsați-o cu ea, să o comparăm cu lucruri, etc în cod. ADC este o funcție incredibil de utilă și vă permite să faceți o mulțime de lucruri interesante, cum ar fi transformarea AVR într-un osciloscop. Frecvența de eșantionare este de aproximativ 125 kHz și trebuie setată proporțional cu frecvența principală a ceasului. Un registru este pur și simplu o colecție de adrese (locații) din memoria AVR. Registrele sunt clasificate în funcție de dimensiunea biților. Un registru de 7 biți are 8 locații, deoarece începem de la 0. Există registre pentru aproape orice și le vom arunca o privire mai detaliată mai târziu. Câteva exemple includ registrele PORTx (unde x este B, C sau D) care controlează dacă un pin este setat ridicat sau scăzut și setează rezistențe pentru intrări, registrele DDRx care stabilesc dacă un pin este ieșire sau intrare și așa mai departe. Fișa tehnică Un gigant al literaturii, cântărind în jur de 400 de pagini; fișele tehnice AVR reprezintă o referință de neprețuit la procesorul dvs. Acestea conțin detalii despre fiecare registru, fiecare pin, modul de funcționare a temporizatoarelor, ce siguranțe ar trebui setate la ce și multe altele. Acestea sunt gratuite și veți avea nevoie mai devreme sau mai târziu, așa că descărcați o copie! Www.atmel.com/dyn/resources/prod_documents/doc2486.pdf

Pasul 4: Alocarea pinilor

Alocarea pinilor
Alocarea pinilor

Am menționat deja intrările și ieșirile de care avem nevoie, așa că ar trebui să le alocăm pini! Acum, PORT D are 8 pini, ceea ce este convenabil, deoarece poate acționa ca portul nostru de ieșire. LCD-ul necesită 7 pini pentru a funcționa - 4 pini de date și 3 pini de control. LED-ul IR necesită doar un pin, astfel încât acesta constituie 8. PORTB-ul nostru va fi portul nostru de butoane, are 6 intrări, dar vom avea nevoie doar de 5. Acestea vor fi butoanele de mod și direcționale. special, este portul ADC. Avem nevoie doar de un pin pentru intrarea de declanșare și este logic să-l punem pe PC0 (o abreviere obișnuită pentru pinii de port în acest caz Port C, Pin 0). Avem apoi câțiva pini pentru LED-urile de stare (unul se aprinde când valoarea ADC este mai mare decât o anumită stare, cealaltă se aprinde când este sub o anumită stare). De asemenea, vom pune aici introducerea butonului ok / shoot, din motive care vor deveni clare ulterior. După toate acestea, am epuizat majoritatea porturilor, dar mai avem câteva, dacă doriți să extindeți proiectul - poate mai multe declanșatoare?

Pasul 5: Comunicarea cu camera foto

Comunicarea cu camera
Comunicarea cu camera
Comunicarea cu camera
Comunicarea cu camera

Premiul I la Concursul Foto Zilele Digitale

Recomandat: