Съдържание:
- Стъпка 1: Изграждане на самостоятелния Arduino
- Стъпка 2: Окабеляване на ISP
- Стъпка 3: Редактирайте файла за зареждане, запишете устройството за зареждане и качете вашата скица
- Стъпка 4: Серийна комуникация
Видео: Самостоятелен Arduino 3.3V W / Външен 8 MHz часовник, програмиран от Arduino Uno чрез ICSP / ISP (със сериен мониторинг!): 4 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
Цели:
- За изграждане на самостоятелен Arduino, който работи на 3.3V от 8 MHz външен часовник.
-
За да го програмирате чрез ISP (известен също като ICSP, вградено серийно програмиране) от Arduino Uno (работи на 5V)
За да редактирате файла за зареждане и да запишете буутлоудъра (чрез ISP)
-
За да можете да четете серийна информация от самостоятелния Arduino чрез FTDI кабел
За да можете да четете серийна информация от стандартния Arduino без FTDI кабел
Преамбюл:
Опитвах се да изградя моя самостоятелен проект, но не видях изчерпателни ръководства за стартиране, програмиране и наблюдение на самостоятелен Arduino - особено такъв, работещ с 8Mhz външен часовник и 3.3V и програмиран от Arduino UNO. Събрах няколко отделни ръководства и се опитах да посоча откъде съм взел информацията, за да дам кредит там, където дължим кредит. Това ръководство е резултат от много дни търсене на решения и намиране на части от него, докато изграждах собствен проект. Също така, свързах няколко полезни продукта, които ще ми дойдат под ръка, а не защото съм свързан с някой от компаниите, но тъй като е уместно да се включат конкретните елементи, за които визирам.
Често срещани въпроси, преди да започнем:
Защо трябва да го програмирате с ISP и да наблюдавате чрез FTDI? Защо не можете просто да го програмирате чрез FTDI?
Ще трябва да променим настройките на предпазителя, като запишем нов буутлоудър и не можете да направите това чрез серийна комуникация. Трябва да запишете буутлоудъра чрез ISP. Това е полезно и за тези, които нямат предварително зареден чип ATMEGA328.
Защо просто не използвам ISP кабел със сериен мониторинг, като този?
Може би, като мен, просто нямате такъв и вместо да чакате да бъде изпратен, вие искате да използвате това, което имате! Случайно имам FTDI кабел (въпреки че в крайна сметка ще откриете, че дори не се нуждаете от него: той просто улеснява живота ви).
Не се нуждая от превключвател на логическо ниво от Uno към самостоятелния Arduino?
Да, вие го правите, но ще ви покажа как да си направите сами. Подобно на кабела на ISP, случайно нямам такъв.
Искам да го изхвърля от външно захранване. Как да направя това?
Има много ръководства, които показват как да стартирате самостоятелен Arduino извън захранването на батерията. Ще напиша как го направих и ще го свържа тук [ще вмъкна по -късно].
РЪКОВОДСТВОТО
Стъпка 1: Изграждане на самостоятелния Arduino
1) Изградете самостоятелния Arduino от тази връзка. Единствената част от ръководството, от която се нуждаете, е „Основите на ATMEGA8/168/328“.
- можете да захранвате самостоятелния Arduino от 3.3V от Arduino Uno. (Можете да пропуснете първия раздел на урока, озаглавен „Добавяне на верига за захранване“.
- Заменете 16 MHz часовника с 8 Mhz часовник.
-
Добавете 0,1 uF капачки между: VCC и Gnd (от двете страни) VRef и Gnd.
- Нямам тези включени в снимката, но ги имам в моите проекти!
- Знам, че това е 16 MHz осцилатор на снимката. Направих снимката, преди да разбера всичко, което направих в ръководството!
Източник на изображение на ATMEGA328p за извеждане на изображения тук.
Общи съвети за отстраняване на неизправности
- Уверете се, че сте задали високо ниво чрез 10k резистор от VCC към пин 1 на ATMEGA. Ако щифтът е заземен или плаващ, той няма да работи.
- Проверете отново дали сте поставили правилно проводниците и осцилатора.
- Уверете се, че използвате 8pF кондензатори за 8 MHz осцилатор. Иначе няма да работи.
- Уверете се, че устройството е захранвано.
Стъпка 2: Окабеляване на ISP
2) Създайте частта за ISP
Ще следвате това ръководство тук с малка, но много важна стъпка.
Причината, поради която не можете просто да следвате ръководството, е, че пропускате важна част: не можете да програмирате 3.3V устройство директно от 5V връзките. (Поне не можех: нямаше да работи, докато не направя това). Трябва да вмъкнете превключвател на логическо ниво, който измества 5V сигналите от UNO към 3.3V самостоятелен Arduino.
Ако нямате платка за превключване на логическо ниво, можете да я направите с помощта на резистори. Всичко, което в действителност е превключвател на логическо ниво (стига да се измествате надолу) е делител на напрежение. Ще ви трябват 6 същите резистора, нищо твърде високо или твърде ниско. Използвах 220 ома резистори, но съм сигурен, че дори 10k резистори ще работят.
За SCK (цифров щифт 13) и MOSI (цифров щифт 11) използвайте делител на напрежение, за да намалите напрежението с една трета. По същество ще имате един Uno SCK и MOSI, след това резистор (220 ома), след това SCK и MOSI, свързани към самостоятелния Arduino и 2 резистора (общо 440 ома) към земята.
Така че, прочетете ръководството, свързано в началото на този раздел, но включете разделители на напрежение между SCK и MOSI., 18, 17 и 1 на самостоятелния Arduino!
Общи съвети за отстраняване на неизправности
-
ПРОВЕРЕТЕ СВЪРЗВАНЕТО
- Ако получавате подпис на всички нули на устройството, когато се опитвате да напишете програма, вашето окабеляване почти сигурно е изключено или самостоятелният Arduino не получава захранване.
- Също така се уверете, че имате проводника за нулиране от 10 на Uno до 1 на самостоятелния Arduino
-
ПРОВЕРЕТЕ РАЗДЕЛИТЕЛИТЕ НА НАПРЕЖЕНИЕТО
Уверете се, че имате делители на напрежение със съотношение 1: 2 (висока страна: ниска страна) за резисторите както за SCK, така и за MOSI. Напр. 220 резистора от страната +5v и след това 2 220 ома резистора (общо 440 ома) към земята със сигнала към самостоятелния Arduino в средата
Стъпка 3: Редактирайте файла за зареждане, запишете устройството за зареждане и качете вашата скица
3) Редактирайте файла за зареждане (board.txt) и запишете буутлоудъра в самостоятелния Arduino. Качете вашата скица
Редактиране на файла за зареждане
За да стартирате самостоятелния Arduino, ще трябва да редактирате настройките на предпазителя за изгаряне на буутлоудъра. В противен случай ще можете да запишете буутлоудър на него, но няма да можете да стартирате никакви скици.
Можете напълно да премахнете зачервяването, но не бих го препоръчал. Вместо това ще го понижим от 2.7V (това, което се появи на чипа ми по подразбиране) и ще го заменим с 1.8V. В крайна сметка обаче можете да изберете какви настройки на затъмнение искате, като използвате калкулатора на предпазителите тук.
Файлът на дъските ми беше на следното място:
C: / Program Files (x86) Arduino / hardware / arduino / avr
Възможно е обаче да имате повече от един файл files.txt във вашата хардуерна папка, различен от /arudino /. Ще редактирате файла board.txt в / arduino / местоположението, защото ще модифицирате раздела ATMEGA328p (3.3V, 8 MHz).
Може да загубите редактирания файл Board.txt, ако преинсталирате или актуализирате Arduino IDE (според тази публикация). Това означава, че ако актуализирате Arduino IDE, ще трябва да промените тези настройки отново, ако искате да създадете друг от същия самостоятелен Arduino.
Във файла board.txt превъртете надолу или потърсете „Pro Mini“. Разделът е озаглавен "pro.name = Arduino Pro или Pro Mini". Превъртете надолу до подраздел „pro.menu.cpu.8MHzatmega328 = ATmega328P (3.3V, 8 MHz)“.
Потърсете реда, който казва "pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses = _"
Променете настройките на xFE. (pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses = 0xFE).
Запази и излез.
Записване на Bootloader
След като направите това, можете да следвате раздела „Инструкции“в ръководството на ISP от стъпки 1 до 5.
Някои неща за изясняване:
-
Когато качвате скицата „Arduino като ISP“, трябва да се уверите, че сте избрали правилния COM порт и процесор.
В този случай това означава, че сте избрали COM порта на вашия Arduino в Tools-> Port: COM X (Arduino Uno) и дъската е Arduio Uno
-
Изберете правилния програмист: под Инструменти-> Програмист-> Arduino като ISP.
НЕ ArduinoISP или ArduinoISP.org
-
Преди да запишете буутлодера, сменете платката "Pro или Pro Mini" и Процесора на "ATMEGA328p (3.3V, 8 MHz)".
Няма да видите секцията за процесор, докато не изберете правилния тип платка
Запишете буутлоудъра на самостоятелния Arduino ПРЕДИ да опитате да напишете скици върху него.
Качване на скицата
Това е много важно. Вече можете да програмирате или Arduino: Uno и Standalone. Ако не качвате на правилното устройство, трябва да повторите горния раздел и да пренапишете Arduino като ISP програма на Uno.
Когато качвате скицата си, уверете се, че щракнете върху Инструменти -> Качване с помощта на програмист ИЛИ щракнете върху Ctrl+Shift+U. Можете също да задържите Shift и да щракнете върху иконата със стрелка, но не щракнете върху иконата със стрелка, без да задържите shift.
Общи съвети за отстраняване на неизправности
- Включете подробния изход за отстраняване на неизправности.
-
„Сигнализаторът на устройството е 0!“[Това е много вероятно да се случи.]
- вижте раздела за окабеляване на интернет доставчика. Или сте свързали неправилно самостоятелния Arduino или той не се включва.
- Уверете се, че сте избрали правилния COM порт и платка / процесор. Когато записвате буутлоудъра, ТРЯБВА да се уверите, че записвате Pro Mini 3.3V 8 MHz буутлоудъра върху него или предпазителите няма да се настроят правилно.
-
"Редактирах файла.txt, но не виждам редакциите"
Уверете се, че сте редактирали правилния файл files.txt. Опитайте да актуализирате Arduino IDE, ако редакциите не работят, или премахнете временно други папки във вашата / хардуерна / папка
-
„Не мога да намеря професионалната секция на board.txt!“
Не търсите в правилния файл files.txt. Проверете папката Arduino // hardware/arduino/
Стъпка 4: Серийна комуникация
4) Наблюдавайте самостоятелното устройство чрез серийна комуникация
Наистина можете да направите това чрез 2 метода, така че ако дори нямате FTDI кабел / пробивна платка, това не е краят на света. И не забравяйте, че скицата, която сте качили в самостоятелния Arduino, трябва да има изявления Serial.print, за да можете да прочетете: ако не сте я написали в програмата, няма да видите нищо!
Ако нямате FTDI кабел
След като сте изгорили буутлоудъра и сте написали желаната програма, можете (много внимателно и като си спомните в коя ориентация се връща) да премахнете ATMEGA328 DIP чипа от Arduino Uno. Препоръчвам да използвате плоска глава за това.
Можете да свържете самостоятелния RX на Arduino към RX на Uno и TX към TX. Да, обикновено е обратното, но можете да мислите, че Uno „препраща“информацията към серийния монитор на IDE. Ето защо в този случай не свързвате RX към TX и TX ro RX. Когато изпълнявате програмата си, уверете се, че сте избрали COM порта на Arduino Uno и отворете сериен монтор. Ще можете да видите серийния изход на самостоятелния Arduino.
(Това решение е кредитирано с Robin2 тук.)
Ако имате FTDI кабел / платка
(Използвам FTDI платката на Sparkfun, която преобразувах в 3.3V с помощта на подложката за спойка на гърба)
Просто свържете GND на пробивната платка към самостоятелната земя на Arduino и свържете RX на пробивната платка към TX на Arduino и TX към RX. (Ако сте само сериен мониторинг и не пишете нищо обратно, можете просто да свържете RX на макетната платка към Arduino TX).
Имайте предвид, че на този етап имате възможност да захранвате самостоятелния Arduino чрез кабела Uno ИЛИ FTDI. Не свързвайте двата източника на захранване едновременно! Имайте предвид, че ще трябва да промените COM порта, тъй като той ще бъде различен от COM порта на Arduino Uno.
Общи съвети за отстраняване на неизправности
-
- Не виждам нищо!
- Проверете дали сте активирали правилния COM порт.
- Проверете дали имате най -новите драйвери за FTDI.
- Уверете се, че заземяването е свързано.
-
"Всичко, което виждам, е извеждането на боклука в серийния монитор!"
- Получавате нещо, което е добър знак.
- Проверете обаче напрежението на платката FTDI.
- Самостоятелният Arduino извежда 3.3V на своя TX и платката FTDI може да не го вземе, ако очаква 5v.
- Проверете скоростта на предаване.
- Уверете се, че сте свързани със земята и само един източник на захранване! (Т.е. не захранвайте самостоятелния Arduino от Uno И вашата FTDI платка.
Препоръчано:
Самостоятелен ATmega328p (използващ вътрешен 8 MHz часовник): 4 стъпки
Самостоятелен ATmega328p (използващ вътрешен 8 MHz часовник): ATmega328p е едночипов микроконтролер, създаден от Atmel в семейството megaAVR (по-късно Microchip Technology придоби Atmel през 2016 г.). Той има модифицирана 8-битова RISC процесорна архитектура на Харвардската архитектура. Този микроконтролер е мозъкът на Arduino
Капсулиране на стъпков серво мотор със сериен контрол чрез Arduino с помощта на 3D принтер - Pt4: 8 стъпки
Капсулиране на стъпков серво мотор със сериен контрол чрез Arduino с помощта на 3D принтер - Pt4: В това четвърто видео от поредицата Motor Step ще използваме това, което научихме преди, за да изградим стъпков серво мотор с управление чрез серийна комуникация и реално позиционна обратна връзка с помощта на резистивен енкодер, наблюдаван от Arduino. В
Coms за смартфон Arduino/сериен монитор чрез Bluetooth HC-05, HC-06: 4 стъпки (със снимки)
Компоненти на Arduino за смартфон/сериен монитор чрез Bluetooth HC-05, HC-06: Това е изключително полезно, ако искате да тествате скицата си в реална среда, далеч от вашия компютър. Резултатът е, че вашият смартфон действа същото като серийния монитор Arduino на вашия компютър. Bluetooth модулите HC-05 и HC-06 са налични
Направете външен твърд диск от стар външен CD/RW: 5 стъпки
Направете външен твърд диск от стар външен CD/RW: Доста директно преобразуване на стар външен CD/RW в по -полезен външен твърд диск. Консумативи 1-външен cd/rw (за предпочитане по-кутия тип) 1-твърд диск (трябва да съответства на вътрешния конектор на кутията на устройството, трябва да бъде форматиран/синхронизиран) 1-см
HRV температура до OpenHAB чрез ESP8266 (пример със сериен код!): 3 стъпки
HRV температура до OpenHAB чрез ESP8266 (Пример със сериен код!): HRV - Безжичен към OpenHAB Тази инструкция е специално за тези, които имат HRV (вентилация за рециркулация на отопление) - въпреки че части от платката, конфигурация на openhab или код Arduino (като четене TTL серийни данни) може да е h