INHOUDSOPGAWE:

Bou u eie (goedkoop!) Multifunksionele draadlose kamera-beheerder: 22 stappe (met foto's)
Bou u eie (goedkoop!) Multifunksionele draadlose kamera-beheerder: 22 stappe (met foto's)

Video: Bou u eie (goedkoop!) Multifunksionele draadlose kamera-beheerder: 22 stappe (met foto's)

Video: Bou u eie (goedkoop!) Multifunksionele draadlose kamera-beheerder: 22 stappe (met foto's)
Video: Webinar Pasveiligheid en Bluetooth 2024, Julie
Anonim
Bou u eie (goedkoop!) Multifunksionele draadlose kamera-beheerder
Bou u eie (goedkoop!) Multifunksionele draadlose kamera-beheerder
Bou u eie (goedkoop!) Multifunksionele draadlose kamera-beheerder
Bou u eie (goedkoop!) Multifunksionele draadlose kamera-beheerder
Bou u eie (goedkoop!) Multifunksionele draadlose kamera-beheerder
Bou u eie (goedkoop!) Multifunksionele draadlose kamera-beheerder

Inleiding Het u al ooit daarvan gehou om u eie kamera -kontroleerder te bou? BELANGRIKE OPMERKING: Kapasitors vir die MAX619 is 470n of 0.47u. Die skema is korrek, maar die komponentelys was verkeerd - opgedateer. Dit is 'n inskrywing vir die Digital Days -kompetisie, so as u dit nuttig vind, beoordeel/stem/lewer gunstig kommentaar! As jy regtig daarvan hou en 'n struikelaar is, druk "ek hou daarvan!":) Update: verskyn op hackaday! hackaday.com/2009/10/13/a-different-breed-of-camera-controllers/ Update: nuwe foto's van die lasersneller in aksie! Update: Eerste prys = D, dankie vir die stem en/of die gradering! Hierdie instruksies is hoofsaaklik ten bate van SLR -gebruikers wat 'n bietjie meer kilometers uit hul kameras wil haal, maar as daar 'n punt is en foto's met IR -koppelvlakke het, kan u dit interessant vind. Dit sal beslis ook werk (met 'n bietjie aanpassing) met kamera -hacks, waar u logiese uitsette na die kamera se aansluitterminale kan koppel. Dit het begin as 'n volledige tutoriaal, maar as gevolg van 'n paar onverwagte beperkings wat ek later teëgekom het, kan dit meer 'n gids wees om verskillende dinge te bereik - ek laat u dikwels die keuse oor hoe u dinge kan doen wat Ek dink dit is 'n beter manier om dinge te doen as om blindelings te sê "jy moet dit doen". Beskou dit as 'n les in ontwerp van kamera -beheerder. Ek het skemas en volledige kode verskaf, sodat u dit altyd kan kopieer. Dit sal eenvoudig wees om die ontwerp na 'n strookbord oor te dra en die LCD vir die meeste mense by te voeg. Ek het geleer hoe om dit op die bord te plaas, aangesien die proses baie soortgelyk is en dit moontlik maak om foute reg te stel voordat u die ontwerp permanent maak! Ingesluit sensorontwerpe - lig, klank (baie meer moontlik!) Totale koste - minder as £ 25 (instrumente uitgesluit) LCD -skerm vir maklike verandering van instellings Versoenbaar met Nikon/Canon (gekodeer), moontlike ondersteuning (ongetoets) vir Olympus/Pentax Geen firmware verandering nodig Gebruik IR, is beide draadloos en beskadig nie u kamera nie. Ek het 'n interval van 8 sekondes gedoen vir ongeveer 1000 skote. Ek het gedink, hey, dit is maar 'n IR -LED, nie waar nie? Waarom kan ek dit nie herhaal en my eie afstandsbediening maak met 'n ingeboude vertraging nie? Ek het toe uitgevind (ietwat verleë, omdat ek gedink het ek het 'n massiewe breingolf gehad) dat dit gedoen is en dat daar selfs 'n paar instruksies oor die onderwerp is. Waar my implementering verskil van die meeste intervalmeters en selfstandige afstandsbedienings, is dat dit baie aanpassings en modulariteit moontlik maak, verenigbaar is met Nikon/Canon (en waarskynlik later later) en die vermoë kombineer om 'n foto op 'n spesifieke sneller te neem. Die idee is eenvoudig. U wil iets vinnig neem (tans beperk deur die vertraging in u sluiter, vir my 6 ms). Daar is 'n verskeidenheid metodes om dit te doen: 1. Proef en fout, probeer om op die regte oomblik die foto te neem. 2. Verbeterde proef en fout maak dat u die kamer verduister, u kamera op die gloeilamp sit (oop sluiter) en 'n flits afvuur op die regte tyd 3. Koop 'n toegewyde snellerbeheerder met 'n soort klank-/ligsensor om die foto op u bevel te neem. 4. Bou self een! Ok, 1 en 2 is goed om deurmekaar te raak en kan baie goeie foto's oplewer. Maar wat ek jou gaan wys, is dat dit moontlik is om 'n stroombaan te bou wat jou keer op keer konsekwente resultate sal gee. Die belangrikste is dat in hierdie moeilike tye die koste laer is as alternatiewe modelle (sommige mense het kits vervaardig wat hierdie soort dinge doen, maar dit kos 'n fortuin, sien skakels). Die veelsydigheid van die ontwerp is die volgende: As u sensor 'n uitsetspanning tussen 0 en 5V genereer, kan u dit gebruik om u kamera te aktiveer! Op die oog af is dit 'n vervelige stelling, maar sodra u die implikasies begin verstaan, word dit baie kragtig. Deur bloot 'n spanningsvlak te monitor, kan u sneller lig (LDR), klankgebaseerd (mikrofoon of ultraklank), temperatuur gebaseer (termistor) of selfs 'n eenvoudige potensiometer wees. Trouens, omtrent alles. U kan selfs die kring aan 'n ander kontroleerder koppel, mits dit u 'n logiese uitset kan gee, sodat u dit kan aktiveer. Die enigste groot beperking van die ontwerp tans is dat dit slegs met IR-koppelvlakke werk; dit is redelik eenvoudig om die sagteware en hardeware aan te pas om via mini-USB uit te voer of watter soort koppelvlak ook al benodig word. Nota: Bronkode: Ek het 'n paar toepassings in stap 13. Die kode wat ek op my beheerder gebruik, is tans in 'n hex -lêer saam met die hoof c -lêer en die afhanklikheid daarvan. U kan my kode eenvoudig gebruik as u nie seker is oor die opstel nie. Ek het ook 'n paar voorbeeldkode ingesluit wat u in verskillende stappe kan gebruik (dit word duidelik genoem, soos remote_test, intervalometer -toets en adc -toets. As ek in 'n stap na kode verwys, is die kans goed dat dit daar is. EDIT: 'n opdatering oor ballonne wat spring - dit lyk asof ek 'n bietjie kortsigtig was toe ek sê dat u maklik foto's van ballonne kan skiet. is 'n probleem met die meeste kameras, NIE die kontroleerder nie (wat die ADC met 'n snelheid van ongeveer 120kHz waarneem). Om dit te doen, is om 'n flits te gebruik, wat moontlik is as u 'n ekstra draad en 'n ander klein stroombaan byvoeg. gesê, kan u in teorie iets anders gebruik om dit te laat speel en met die vertraging te speel (of selfs die vertragingskode verander om mikrosekondes in te sluit). Net die beweeg van die geweer sal 'n rudimentêre vertraging van 'n paar mikrosekonde oplewer s. Weereens, ek vra om verskoning hieroor, ek gaan vanaand speel as ek 'n paar ballonne in die hande kan kry, maar daar is nog baie gebruike vir 'n klank -sneller, soos vuurwerke! Ek het 'n vinnige en vuil tydsverloop hieronder gegee om aan te toon dat dit egter werk:) Moenie vergeet om te lees, te beoordeel en/of te stem nie! Cheers, Josh Disclaimer In die onwaarskynlike geval dat iets gruwelik verkeerd loop of as u op een of ander manier u kamera steek/u kat doodmaak, is ek vir niks aanspreeklik nie. Deur 'n projek te begin wat op hierdie instruksies gebaseer is, aanvaar u dit en gaan u op eie risiko voort. As u een hiervan maak, of my instruksies gebruik om u te help - stuur 'n skakel/foto aan my, sodat ek dit hier kan insluit! Die reaksie was tot dusver oorweldigend (ten minste volgens my standaarde), so dit sal wonderlik wees om te sien hoe mense dit interpreteer. Ek werk aan hersiening 2 terwyl ek tik;)

Stap 1: 'n paar aanvanklike gedagtes …

Dus, hoe gaan ons hierdie ding bou? Mikrokontroleerder Die hart en siel van hierdie projek is 'n AVR ATMega8. Dit is in wese 'n effens versierde weergawe van die ATMega168 -chip wat Arduino gebruik. Dit is programmeerbaar in C of Assembly en het 'n verskeidenheid werklik nuttige funksies wat ons tot ons voordeel kan gebruik. "28 penne, waarvan die meerderheid input/output (i/o)" Aan boord analoog na digitale converter "Laag kragverbruik is "3 ingeboude tydtellers" Interne of eksterne klokbron "Baie kodebiblioteke en monsters aanlyn Om baie penne te hê, is goed. Ons kan met 'n LCD -skerm koppel, 6 knoppie -ingange hê en nog genoeg oorbly vir 'n IR -LED om mee te skiet en 'n paar status -LED's. Die Atmel AVR -reeks verwerkers het baie ondersteuning aanlyn en daar is baie tutoriale om begin (ek sal dit kortliks bespreek, maar daar is beter toegewyde tutoriale) en hope kode om oor te dink. As verwysing sal ek hierdie projek in C met die AVR-LibC-biblioteek kodeer. Ek sou maklik met PIC kon gaan om dit te doen, maar AVR word goed ondersteun en al die voorbeelde wat ek vir afstandbeheer gevind het, is op AVR gebaseer! LCD DisplayThere is twee hooftipes vertoon, grafies en alfanumeries. Grafiese skerms het 'n resolusie en u kan pixels plaas waar u wil. Die nadeel is dat dit moeiliker is om te kodeer (alhoewel biblioteke bestaan). Alfanumeriese skerms is eenvoudig een of meer rye karakters, die LCD het 'n ingeboude basiese karakters (dws die alfabet, 'n paar syfers en simbole) en dit is relatief maklik om snare uit te voer, ens. Die nadeel is dat hulle nie so buigsaam is nie en dat grafika feitlik onmoontlik is, maar dit pas by ons doel. Hulle is ook goedkoper! Alfanumerieke word gekategoriseer volgens hul ry- en kolomtelling. Die 2x16 is redelik algemeen, met twee rye van 16 karakters, elke karakter is 'n 5x8 matriks. U kan ook 2x20 sekondes kry, maar ek sien nie die behoefte nie. Koop alles waarmee u gemaklik voel. Ek het gekies om 'n rooi LCD met agtergrond te gebruik (ek wil dit vir astrofotografie gebruik en rooi lig is beter vir naggesig). U kan sonder agtergrond gaan - dit is heeltemal u keuse. As u 'n roete sonder verligting kies, spaar u krag en geld, maar u benodig miskien 'n fakkel in die donker. As u 'n LCD soek, moet u seker maak dat dit deur die HD44780 beheer word. Dit is 'n industriële standaardprotokol wat deur Hitachi ontwikkel is en daar is baie goeie biblioteke wat ons kan gebruik om data uit te voer. Die model wat ek gekoop het, was 'n JHD162A van eBay. InputInput word met knoppies gedoen (eenvoudig!). Ek het 6 -modus kies, ok/shoot en 4 rigtings gekies. Dit is ook die moeite werd om nog 'n klein knoppie te kry om die mikro te herstel in geval van 'n ongeluk. Wat die snellerinvoer betref, is 'n paar basiese idees 'n ligafhanklike weerstand of 'n elektretmikrofoon. Dit is waar u kreatief of suinig kan word, afhangende van u begroting. Ultraklanksensors sal 'n bietjie meer kos en ekstra programmering verg, maar u kan baie netjies daarmee doen. Die meeste mense sal tevrede wees met 'n mikrofoon (waarskynlik die nuttigste algemene sensor) en elektriste is baie goedkoop. Hou in gedagte dat dit ook versterk moet word (maar ek sal later hieroor kyk. foto's, moet ons met die kamera skakel en daarvoor benodig ons 'n ligbron wat infrarooi straling kan produseer. Gelukkig is daar 'n menigte LED's wat dit kan doen, en u moet probeer om 'n redelike hoë kragopwekker te kry. Die eenheid wat ek gekies het, het 'n maksimum stroom van 100mA (die meeste LED's is ongeveer 30mA). Let ook op die golflengte -uitset. Infrarooi lig is in die langer golflengte van die EM-spektrum en u moet 'n waarde van ongeveer 850-950nm soek. Die meeste IR -LED's neig na die 950 -einde en u sal moontlik 'n bietjie rooi lig sien as dit aangeskakel word, dit is nie 'n probleem nie, maar dit is 'n vermorsde spektrum, dus probeer om nader aan 850 te gaan as dit moontlik is. hierdie? Dit gaan draagbaar wees, so batterye! Ek het gekies om 2 AA -batterye te gebruik wat dan tot 5V verhoog word. Ek gaan in die volgende afdelings oor die redenasie hieroor. 'Omvang en konstruksie' Hoe u dit doen, is heeltemal aan u. Ek het besluit om stripboard vir die kring te gebruik na prototipe, want dit is goedkoop en buigsaam en bespaar die ontwerp van 'n persoonlike PCB. Ek het die skemas verskaf, sodat u vry is om u eie PCB -uitleg te maak, maar as u dit wel het, is ek dankbaar om 'n kopie te hê! in 'n redelik intuïtiewe uitleg indien moontlik) en die batterye. Soos die printplate gaan, is hierdie een nie so ingewikkeld nie; baie verbindings is eenvoudig met dinge soos die knoppies/LCD.

Stap 2: Kragbestuur

Kragbestuur
Kragbestuur

Kragbestuur Vir 'n projek soos hierdie is dit duidelik dat draagbaarheid 'n belangrike aspek moet wees. Batterye is dus die logiese keuse! Nou, vir draagbare toestelle, is dit redelik belangrik dat u 'n batterybron kies wat herlaaibaar of maklik beskikbaar is. Die twee belangrikste opsies is die 9V PP3 -battery of AA -batterye. Ek is seker dat sommige mense sal aanneem dat 'n 9V -battery die beste opsie is, want hey, 9V is beter as 3, wel, nie in hierdie geval nie. 9V -batterye, hoewel dit baie handig is, produseer hul spanning ten koste van die batterylewe. Gemeten in mAh (milliampere ure), gee hierdie telling in teorie aan hoe lank 'n battery in ure by 1mA kan werk (alhoewel dit met 'n knippie sout geneem word, is dit dikwels onder ideale toestande met lae laai). Hoe hoër die telling, hoe langer sal die battery hou. Die 9V -batterye is tot 1000 mAh hoog. Alkaliese AA's aan die ander kant het byna drie keer soveel teen 2900mAh. NiMH -herlaaibare toestelle kan bereik word, alhoewel 2500mAh 'n redelike hoeveelheid is (let op dat herlaaibare batterye teen 1.2V werk, nie 1.5 nie!). alhoewel dit tot 2,7 kan daal vir kloksnelhede met 'n lae frekwensie). Ons benodig ook 'n redelik stabiele spanning; as dit wissel, kan dit probleme met die mikrobeheerder veroorsaak. Om dit te kan doen, moet ons 'n spanningsreguleerder gebruik; u moet nou 'n keuse maak bo prys vs doeltreffendheid. U het die opsie om 'n eenvoudige 3-pins spanningsreguleerder te gebruik, soos die LM7805 (78-reeks, +5 volt-uitgang) of 'n klein geïntegreerde stroombaan. Deur 'n eenvoudige reguleerder te gebruik. paar punte in gedagte. Eerstens benodig drie penreguleerders byna altyd 'n inset wat hoër is as hul uitset. Hulle verlaag dan die spanning na die gewenste waarde. Die nadeel is dat hulle baie doeltreffend is (50-60% is goed). Die voordeel is dat hulle goedkoop is en met 'n 9V -battery kan werk. U kan in die Verenigde Koninkryk 'n basiese model vir 20 sent koop. U moet ook in gedagte hou dat reguleerders 'n uitsakspanning het - die minimum gaping tussen inset en uitset. U kan spesiale LDO (Low DropOut) -reguleerders koop met uitsakkings van ongeveer 50mV (in vergelyking met 1-2V met ander ontwerpe). Met ander woorde, kyk uit vir LDO's met 'n +5V -uitgang. Gebruik van 'n geïntegreerde stroombaan Die ideale manier om te gaan is 'n skakelreguleerder. Dit is vir ons doel gewoonlik 8 -pins pakkette wat 'n spanning inneem en ons 'n gereguleerde uitset met 'n hoë doeltreffendheid gee - in sommige gevalle byna 90%. U kan omskakelaars op- of afneem (onderskeidelik 'n hupstoot/dollar), afhangende van wat u wil insit, of u kan reguleerders koop wat bo of onder die gewenste uitset is. Die chip wat ek vir hierdie projek gebruik, is 'n MAX619+. Dit is 'n 5V opstapreguleerder wat 2 AA's neem (die invoerreeks is 2V-3.3V) en gee 'n bestendige 5V out. Dit benodig slegs vier kapasitors om te werk en is baie ruimtebesparend. Koste - 3,00 ingesluit die doppies. Dit is waarskynlik die moeite werd om net meer gebruik te maak van u batterye. Die enigste groot nadeel is dat dit nie deur kortsluiting beskerm word nie, dus wees gewaarsku as daar 'n stroompie is! Dit is egter redelik triviaal om op te los met 'n bykomende kring: 'n Ander nuttige chipontwerp - hoewel die LT1307 nie naastenby so netjies is nie. Weereens 'n 5V -reguleerder, maar dit kan 'n verskeidenheid insette benodig en bevat nuttige dinge soos opsporing van 'n lae battery. Dit kos heelwat meer by byna 5 met induktors, groot kapasitors en weerstande. Spoorrails Ons gaan twee hoofspanningsrails (plus 'n gemeenskaplike grond) gebruik. Die eerste is die 3V van die battery, dit sal gebruik word om die LED's en ander relatief hoë kragkomponente aan te dryf. My MAX619 is slegs tot 60mA gegradeer (alhoewel die absolute maksimum 120mA is), dus is dit makliker om die mikrokontroleerder aan 'n MOSFET te koppel om enige LED's te beheer. Die MOSFET trek feitlik geen stroom nie en dien as 'n onderbreking in die stroombaan as die hek se inset minder as 3V is. As die mikrobeheerder logiese 1 op die pen uitstuur, is die spanning 5V en die VOO word aangeskakel, en dien dan net as 'n kortsluiting (dws 'n stuk draad). Die 5V -spoor sal die LCD, mikrokontroleerder en enige versterkingskringe vir Kragverbruik As ons na verskillende gegewensblaaie kyk, let ons op dat die AVR nie meer as 15-20mA neem by maksimum las nie. Die LCD neem slegs 1 mA om te werk (ten minste as ek dit getoets het, begroot vir 2). Met die agtergrond aan, is dit regtig aan u om te besluit. Dit is goed om dit regstreeks aan die 5V -rail te koppel (ek het probeer), maar maak seker dat dit 'n ingeboude weerstand het (volg die spore op die PCB) voordat u dit doen. Dit trek 30mA op die manier - vreeslik! Met 'n weerstand van 3,3 k is dit steeds sigbaar (perfek vir astrofotografie) en trek slegs 1mA. U kan steeds behoorlike helderheid kry met 'n 1k of andersins. Ek is goed met myne wat net onder 2mA teken met die agtergrond aan! As u wil, is dit triviaal om 'n helderheidsknop by te voeg met behulp van 'n 10k potensiometer. Die IR -LED kan maksimum 100mA neem, maar ek het goeie resultate behaal met 60mA oor myne (eksperiment!). U kan die stroom dan halveer omdat u effektief op 'n 50% -siklus loop (as die LED gemoduleer is). Dit is in elk geval slegs 'n breukdeel van 'n sekonde aan, sodat ons ons nie hieroor hoef te bekommer nie. vir LED's met 'n lae krag (uitgesluit die IR -een), ontwerp u nie 'n fakkel nie! Ek het gekies om nie 'n kragaanwyser in my stroombaan te voeg nie, bloot omdat dit baie stroom trek om nie veel gebruik te word nie. Gebruik die aan/uit -skakelaar om te kyk of dit aan is! In totaal behoort u nie meer as 30mA te eniger tyd te werk nie en met 'n teoretiese toevoer van ongeveer 2500 (wat variasie moontlik maak) wat u meer as 80 uur behoort te gee reguit met alles aan. As die verwerker die meeste van die tyd stilstaan, sal dit ten minste verdubbel/verdriedubbel, sodat u nie gereeld u batterye hoef te vervang nie. U kan goedkoop en vrolik wees met 'n 9V -battery en 'n LDO -reguleerder ten koste van doeltreffendheid, of 'n bietjie meer betaal en 'n toegewyde IC gebruik om dit te doen. My begroting was nog steeds onder 20, selfs met die IC, sodat u dit nog verder kan laat val as dit nodig is.

Stap 3: Kyk noukeuriger na die ATmega8

Kyk noukeuriger na die ATmega8
Kyk noukeuriger na die ATmega8

PinsImage 1 is die pinout -diagram vir die ATMega8 (presies dieselfde as die 168/48/88, die enigste verskil is die hoeveelheid ingeboude geheue en onderbrekingsopsies). Pin 1 - Reset, moet by VCC -spanning gehou word (of ten minste logies 1). As dit geaard is, sal die toestel saggies herstel Pin 2 - 6 - Poort D, algemene ingang/uitset Pin 7 - VCC, toevoerspanning (+5V vir ons) Pin 8 - Ground Pin 9, 10 - XTAL, eksterne klok insette (deel van poort B) Pin 11 - 13 Poort D, algemene ingang/uitset Pin 14 - 19 Poort B, algemene ingang/uitset Pin 20 - AVCC, analoge toevoerspanning (dieselfde as VCC) Pin 21 - AREF, analoge spanningverwysing Pin 22 - GroundPin 23-28 Poort C, algemene invoer/uitvoer Gebruikbare i/o -poorte: D = 8, C = 6, B = 6 'n Totaal van 20 bruikbare poorte is uitstekend; u moet eenvoudig u uitsette groepeer in poorte (sê D as die uitvoerpoort) of in groepe op die bord - u wil dalk hê dat die LCD vanaf poort C moet loop net om die drade netjies in die hoek te hou. Daar is drie ekstra penne wat nodig is om te programmeer. Dit is MISO (18), MOSI (17) en SCK (19). Dit sal egter as i/o -penne dien as dit nodig is. Uitsig Die sein wat ons na die kamera stuur, moet presies getimuleer word (akkuraat tot ongeveer 'n mikrosekonde), daarom is dit belangrik dat ons 'n goeie klokbron kies. Alle AVR's het 'n interne ossillator waarvan die chip sy horlosie kan kry. Die nadeel hiervan is dat hulle ongeveer 10% kan wissel met temperatuur/druk/humiditeit. Ons kan 'n eksterne kwarts kristal gebruik om dit te bekamp. Dit is beskikbaar in alles van 32768kHz (horlosie) tot 20MHz. Ek het gekies om 'n 4Mhz -kristal te gebruik, want dit bied 'n behoorlike hoeveelheid spoed, maar is redelik kragkonserwatief in vergelyking met miskien 8Mhz+. Aan boord van kragbestuur Ek wou regtig slaaproetines in my kode gebruik. Eintlik het ek die eerste weergawe geskryf waarin ek sterk vertrou het dat die verwerker nie werk nie, terwyl ek tyd verval. As gevolg van tydsbeperkings, het ek ongelukkig probleme ondervind met die eksterne hardloop van die klok en die onderbreking van die timer. In wese sou ek die kode moes herskryf om te hanteer dat die beheerder eenvoudig nie wakker word nie - wat ek kan doen, maar tyd is teen my. As sodanig trek die toestel slegs 20mA, sodat u daarmee kan wegkom. As u regtig daarvoor gesukkel het, is dit net nodig om intern te klok en dan Timer 2 in asynchrone modus te gebruik met behulp van die 4MHz kristal vir die meer akkurate vertragings. Dit is eenvoudig om te doen, maar tydrowend. ADC Die Switserse leermes in die AVR -gereedskapstel, die ADC, staan vir Analoog na Digitale omskakelaar. Van buite is dit relatief eenvoudig hoe dit werk. 'N Spanning word op 'n pen geneem (van 'n sensor of ander ingang), die spanning word omgeskakel in 'n digitale waarde tussen 0 en 1024. 'n Waarde van 1024 sal waargeneem word wanneer die insetspanning gelyk is aan die ADC -verwysingspanning. As ons ons verwysing as VCC (+5V) stel, is elke afdeling 5/1024 V of ongeveer 5mV. 'N Verhoging van 5 mV op die pen sal dus die ADC -waarde met 1. verhoog. Ons kan die ADC -uitsetwaarde as 'n veranderlike neem, en dan daarmee worstel, dit vergelyk met dinge, ens. In die kode. Die ADC is 'n ongelooflike nuttige funksie en laat u baie cool dinge doen, soos om van u AVR 'n ossilloskoop te maak. Die bemonsteringsfrekwensie is ongeveer 125kHz en moet in verhouding tot die hoofklokfrekwensie ingestel word. 'N Register is bloot 'n versameling adresse (plekke) in die AVR -geheue. Registers word geklassifiseer volgens hul bitgrootte. 'N 7 -bisse register het 8 liggings, soos ons begin by 0. Daar is registers vir omtrent alles, en ons sal dit later in meer besonderhede bekyk. Enkele voorbeelde sluit in die PORTx -registers (waar x B, C of D is) wat bepaal of 'n pen hoog of laag gestel word en optelweerstands vir insette stel, die DDRx -registers wat bepaal of 'n pen uitgang of invoer ensovoorts is. Die datablad 'n groot hoeveelheid literatuur, wat ongeveer 400 bladsye weeg; die AVR -gegewensblaaie is 'n waardevolle verwysing na u verwerker. Dit bevat besonderhede van elke register, elke pen, hoe die tydtellers werk, watter versmeltings en wat nog meer moet wees. Hulle is gratis en jy sal dit vroeër of later nodig hê, so laai 'n afskrif af! Www.atmel.com/dyn/resources/prod_documents/doc2486.pdf

Stap 4: Ken penne toe

Ken penne toe
Ken penne toe

Ek het reeds genoem die insette en uitsette wat ons nodig het, so ons moet hulle penne toewys! Nou het PORT D 8 penne wat gerieflik is, aangesien dit as ons uitvoerpoort kan dien. Die LCD benodig 7 penne om te werk - 4 datapennetjies en 3 bedieningspenne. Die IR -LED benodig slegs een pen, sodat ons 8. PORTB ons knoppiepoort sal wees, dit het 6 ingange, maar ons benodig slegs 5. Dit is die modus- en rigtingknoppies. PORTC is spesiaal, dit is die ADC -poort. Ons benodig slegs een pen vir die snellerinvoer, en dit is sinvol om dit op PC0 te plaas ('n algemene afkorting vir poortpenne in hierdie geval poort C, pen 0). Ons het dan 'n paar penne vir status -LED's (die een brand as die ADC -waarde hoër is as die ander, die ander brand as dit onder 'n toestand is). Ons sal ook ons ok/shoot -knoppie -invoer hier plaas, om redes wat later duidelik sal word. - miskien verskeie snellers?

Stap 5: Kommunikeer met die kamera

Kommunikeer met die kamera
Kommunikeer met die kamera
Kommunikeer met die kamera
Kommunikeer met die kamera

Eerste prys in die digitale dae fotokompetisie

Aanbeveel: