Мазмуну:

Arduino фильм камерасынын жапкычын текшергич: 4 кадам
Arduino фильм камерасынын жапкычын текшергич: 4 кадам

Video: Arduino фильм камерасынын жапкычын текшергич: 4 кадам

Video: Arduino фильм камерасынын жапкычын текшергич: 4 кадам
Video: Arduino Tutorial 34 - Color gradient with RGB LED and Knob | SunFounder's ESP32 IoT Learnig kit 2024, Июль
Anonim
Arduino фильм камерасынын жапкычын текшергич
Arduino фильм камерасынын жапкычын текшергич
Arduino фильм камерасынын жапкычын текшергич
Arduino фильм камерасынын жапкычын текшергич

Жакында мен эски эки камера сатып алдым. Аларды тазалагандан кийин мен жапкычтын ылдамдыгын чаң, коррозия же майдын жоктугу менен артта калаарын түшүндүм, ошондуктан мен каалаган камеранын экспозиция убактысын өлчөө үчүн бир нерсе жасоону чечтим, анткени менин көзүм менен мен аны өлчөй албайм. так Бул долбоор проект экспозиция убактысын өлчөө үчүн негизги компонент катары Arduino колдонот. Биз opto түгөйүн (IR LED жана IR фото-транзистору) түзөбүз жана камеранын жапкычынын канча убакыт ачык экенин окуйбуз. Биринчиден, мен максатыбызга жетүүнүн тез жолун түшүндүрөм жана аягында бул долбоордун артында турган бардык теорияларды көрөбүз.

Компоненттердин тизмеси:

  • 1 x Камера
  • 1 x Arduino Uno
  • 2 x 220 Ω Carbon фильм каршылыгы
  • 1 х IR LED
  • 1 x фототранзистор
  • 2 x Small breadboards (же 1 чоң нан, борборго камерага ылайыктуу чоң)
  • Көптөгөн секирүүчү же кабель

*Бул кошумча компоненттер түшүндүрүү бөлүмү үчүн керек

  • 1 х кадимки түстүү LED
  • 1 x Моменталдык баскыч

1 -кадам: Электр зымдары

Wiring Stuff
Wiring Stuff
Wiring Stuff
Wiring Stuff
Wiring Stuff
Wiring Stuff

Биринчиден, IR LEDди бир табакка, ал эми IR Phototransistorду экинчисине тиркелиңиз, ошондо биз аларды бири -бирине каратып алабыз. LED анодуна 220 дюймдук резисторду туташтырыңыз (узун буту же жалпак чеки жок каптал) жана резисторду Arduinoдогу 5В электр булагына туташтырыңыз. Ошондой эле LED катодун (кыска буту же жалпак чек менен каптал) Arduinoдогу GND портторунун бирине туташтырыңыз.

Андан кийин, фото транзистордогу Коллектордун пинин зым менен байлаңыз (мен үчүн кыска бут, бирок сиз аны туура жолго туташтырып жатканыңызга ишенүү үчүн транзистордун маалымат барагын текшеришиңиз керек же транзисторду жардырууну токтотушуңуз керек) 220 Ω каршылыкка жана резисторду Арудинодогу A1 пинге, андан кийин фото транзистордун эмиттер пинин туташтырыңыз (узун буту же тегиз чеки жок). Ошентип, бизде IR LED дайыма күйүп турат жана фото транзистор раковина которгуч катары коюлган.

IR жарыгы транзисторго келгенде, ал коллектордук пинден эмитент пинине токтун өтүшүнө мүмкүндүк берет. Биз A1 төөнөгүчүн кирүүчү жерге орнотобуз, андыктан транзистор токту массага чөктүрмөйүнчө, пин дайыма жогорку абалда болот.

2 -кадам: Программалоо

Arduino IDEңизди (порт, такта жана программист) Arduino тактаңызга керектүү конфигурацияга ылайыкташтырыңыз.

Бул кодду көчүрүү, компиляциялоо жана жүктөө:

int readPin = A1; // pin 330 резистору фототранзистордон туташкан

int ptValue, j; // analogRead () бол кулпусунан окулган маалыматтарды сактоо чекити; // болеан readPin белгисиз узак таймердин абалын окуу үчүн колдонулат, таймер2; эки жолу окуу; Сап тандоо [12] = {"В", "1", "2", "4", "8", "15", "30", "60", "125", "250", "500", "1000"}; көптөн күтүлгөн [12] = {0, 1000, 500, 250, 125, 67, 33, 17, 8, 4, 2, 1}; void setup () {Serial.begin (9600); // биз сериялык байланышты секундасына 9600 битке орноттук pinMode (readPin, INPUT_PULLUP); // биз пин транзистор чөгүп кеткен учурларды кошпогондо, пинди дайыма жогору коёбуз, ошондуктан логиканы "артка кайтардык" // бул HIGH = IR сигналы жок жана LOW = IR сигналы кабыл алынган кечигүүнү билдирет (200); // бул кечигүү системаны баштоо үчүн жана жалган окуулардан качуу үчүн j = 0; // биздин эсептегичти баштоо} void loop () {lock = digitalRead (readPin); // берилген пиндин абалын окуу жана эгерде аны өзгөрмөгө ыйгаруу (! lock) {// пин LOW timer = micros () болгондо гана иштейт; // шилтеме таймерин коюп (! кулпу) {// муну пин ТӨМӨН болгондо жасаңыз, башкача айтканда, жапкычты ачуу таймер2 = micros (); // өткөн убакыт үлгүсүнүн кулпусу = digitalRead (readPin); // жапкычтын жабылганын билүү үчүн пиндин абалын окуңуз} Serial.print ("Позиция:"); // бул текст Serial.print керектүү маалыматты көрсөтүү үчүн (тандоо [j]); Serial.print ("|"); Serial.print ("Убакыт ачылды:"); readed = (таймер2 - таймер); // жапкыч канча убакыт Serial.print ачык болгонун (окулган) эсептөө; Serial.print ("биз"); Serial.print ("|"); Serial.print ("Күтүлгөн:"); Serial.println (күтүлгөн [j]*1000); j ++; // жапкычтын абалын жогорулатуу, муну баскыч менен жасаса болот}}

Жүктөө аяктагандан кийин сериялык мониторду ачыңыз (Куралдар -> Сериялык монитор) жана камераны окууга даярдаңыз

Жыйынтыктар "ачылган убакыт:" сөздөрүнөн кийин көрсөтүлөт, калган бардык маалымат алдын ала программаланган.

3 -кадам: Орнотуу жана өлчөө

Орнотуу жана өлчөө
Орнотуу жана өлчөө
Орнотуу жана өлчөө
Орнотуу жана өлчөө
Орнотуу жана өлчөө
Орнотуу жана өлчөө
Орнотуу жана өлчөө
Орнотуу жана өлчөө

Камераңыздын линзаларын чечип, пленка бөлүмүн ачыңыз. Эгер сизде буга чейин жүктөлгөн тасма бар болсо, бул процедураны жасоодон мурун аягына чыгарууну унутпаңыз, болбосо тартылган сүрөттөрдү бузуп аласыз.

IR LED жана IR фото транзисторун камеранын карама -каршы жактарына коюңуз, бири пленканын капталына, экинчиси линзалар. Жарык диод же транзистор үчүн кайсы тарабын колдонсоңуз дагы, жапкыч басылганда алар визуалдык байланышта болушун текшериңиз. Бул үчүн, жапкычты "1" же "В" деп коюп, сүрөттү "тартканда" сериялык мониторду текшериңиз. Эгерде жапкыч жакшы иштеп жатса, монитор окууну көрсөтүшү керек. Ошондой эле, алардын арасына тунук эмес нерсени коюп, өлчөө программасын иштетүү үчүн жылдырсаңыз болот.

Ардуинону баштапкы абалга келтирүү баскычы менен баштапкы абалга келтирип, "B" ден "1000" ге чейин ар кандай жапкыч ылдамдыкта бирден сүрөткө тартыңыз. Сериялык монитор жапкыч жабылгандан кийин маалыматты басып чыгарат. Мисал катары тиркелген сүрөттөрдө Миранда жана Практика камераларынан өлчөнгөн убакытты көрө аласыз.

Сүрөткө тартууда же камераңыздын абалын аныктоодо бул маалыматты колдонуңуз. Эгерде сиз камераңызды тазалоону же жөндөөнү кааласаңыз, мен аларды тажрыйбалуу техникке жөнөтүүнү сунуштайм.

4 -кадам: Geeks Stuff

Geeks Stuff
Geeks Stuff
Geeks Stuff
Geeks Stuff
Geeks Stuff
Geeks Stuff
Geeks Stuff
Geeks Stuff

Транзисторлор биз көргөн бардык электрондук технологиялардын негизи болуп саналат, алар биринчи жолу 1925-жылы Австро-Венгрияда төрөлгөн немис-америкалык физик тарабынан патенттелген. Алар токту көзөмөлдөөчү түзүлүш катары сүрөттөлгөн. Алардан мурун, биз транзисторлордун бүгүнкү операцияларын (телевизор, күчөткүчтөр, компьютерлер) жасоо үчүн вакуумдук түтүктөрдү колдонушубуз керек болчу.

Транзистордун коллектордон эмитентке агып жаткан агымды көзөмөлдөө жөндөмү бар жана биз бул токту 3 буту бар жалпы транзисторлордо транзистор дарбазасына токту колдонуп башкара алабыз. Көпчүлүк транзисторлордо дарбазанын агымы күчөтүлөт, ошондуктан, мисалы, эгер биз дарбазага 1 мА колдонсок, эмиттерден 120 мА агып чыгат. Биз муну суу кранынын клапаны катары элестете алабыз.

Фото транзистор кадимки транзистор, бирок дарбазанын буту жок, дарбаза фото сезимдүү материалга туташкан. Бул материал фотондор менен козголгондо кичинекей токту берет, биздин учурда IR толкун узундугу фотондор. Ошентип, биз IR жарык булагынын кубатын өзгөрткөн фото транзисторду башкарабыз.

Элементтерибизди сатып алуудан жана өткөрүүдөн мурун эске алышыбыз керек болгон айрым өзгөчөлүктөр бар. Транзистордон жана LED маалымат барагынан алынган маалымат тиркелет. Биринчиден, биз транзистордун иштөө чыңалуусун текшеришибиз керек, ал көтөрө ала турган максималдуу чыңалуу, мисалы, эмитенттен коллекторго чейинки менин чыңалуум 5В, ошондуктан мен туура эмес 8В булактан алсам, транзисторду кууруйм. Ошондой эле, кубаттын таралышын текшериңиз, бул өлгөнгө чейин транзисторду канча ток жеткире аларын билдирет. Меники 150 мВт дейт. 5Vда 150мВт 30 мА (Ватт = V * I) булактарын билдирет. Мына ошондуктан мен 220 Ом чектегич каршылыгын колдонууну чечтим, анткени 5Вда 220 Омдук резистор 23 мА максималдуу токту өткөрүүгө гана мүмкүндүк берет. (Ом мыйзамы: V = I * R). Ошол эле жагдай LED үчүн колдонулат, маалымат барагынын маалыматы анын максималдуу токунун болжол менен 50мА экенин билдирет, андыктан дагы 220 Ω каршылыгы жакшы болот, анткени биздин Arduino pin max чыгаруу 40 мА жана биз казыктарды күйгүбүз келбейт.

Биз орнотуубузду сүрөттөгүдөй кылып өткөрүшүбүз керек. Эгерде сиз меникине окшогон баскычтарды колдонуп жатсаңыз, анда тактанын ортосуна эки тегерек чыгууну коюңуз. Андан кийин, төмөнкү кодду Arduinoго жүктөңүз.

int readPin = A1; // ptValue, фототранзисторинттен 220 резистор туташкан жерде пин; // analogRead () void setup () {) окулган маалыматтарды сактоо чекити (Serial.begin (9600); } void loop () {ptValue = analogRead (readPin); // биз readPin (A1) Serial.println (ptValue) боюнча чыңалуу маанисин окуйбуз; // ушундай жол менен, биз окуган маалыматтарды сериялык мониторго жөнөтөбүз, ошондуктан эмне болуп жатканын текшере алабыз кечигүү (35); // скриншотторду жеңилдетүү үчүн кечигүү}

Жүктөп бергенден кийин, сериялык плоттерди ачыңыз (Аспаптар -> Сериялык плоттер) жана IR LED өчүрүү баскычын басканда эмне болорун көрүңүз. Эгерде сиз IR LED иштеп жаткандыгын текшергиңиз келсе (ошондой эле телекөрсөтүүлөр) уюлдук телефонуңуздун камерасын LEDдын алдына коюп, сүрөткө тартып алыңыз. Эгер бул туура болсо, анда сиз LEDден келген көк-кызгылт жарыкты көрөсүз.

Сериялык плоттерде сиз LED күйүп -өчкөнүн айырмалай аласыз, эгер андай болбосо, зымыңызды текшериңиз.

Акыр -аягы, сиз analogRead ыкмасын digitalRead үчүн өзгөртө аласыз, андыктан сиз 0 же 1ди гана көрө аласыз. Мен жалган LOW окууну болтурбоо үчүн Орнотуудан кийин () кечигүүнү сунуштайм (бир кичине LOW чокусу бар сүрөт).

Сунушталууда: