
Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-23 15:02


Forord
Jeg har nylig utviklet noen få ESP8266 -baserte IoT -prosjekter og fant at kjerneprosessoren sliter med å utføre alle oppgavene jeg trengte den for å håndtere, så jeg bestemte meg for å distribuere noen av de mindre viktige aktivitetene til en annen mikrokontroller (r) i på denne måten frigjør du ESP8266 for å fortsette jobben med å være en IoT -enhet.
Siden jeg ønsket å publisere prosjektet mitt for et så bredt publikum som mulig, valgte jeg å bruke Arduino IDE som valgfri utviklingsplattform siden det har et så bredt støttet fellesskap.
Designbegrensninger
For å sørge for en rimelig spredning av målenheter som gjør det mulig å velge en passende mikrokontroller for den aktuelle applikasjonen, bestemte jeg meg for følgende Atmel -deler; ATMega328P, ATTiny84 og ATTiny85. For å begrense kompleksiteten til den nødvendige programmereren begrenset jeg valget av klokke til intern for alle enheter og 16MHz eksternt for bare ATMega328P og ATTiny84.
Det som følger er en samling notater om programmering med Arduino og en beskrivelse av hvordan jeg satte sammen en enkel Arduino Uno -basert programmerer for disse enhetene (bildene ovenfor).
Hvilke deler trenger jeg?
For å bygge programmereren trenger du følgende deler
- 1 av Arduino Uno
- 2 av 28 pin Zero Insertion Force (ZIF) DIP -kontakter (for å holde ATMega328P, ATTiny85, ATTiny84)
- 1 av Arduino prototypeskjold (jeg har min her;
- 2 av 5MM lysdioder
- 2 av 1K motstander
- 1 av 10K motstand
- 4 av 22pF keramiske kondensatorer
- 2 av 16MHz krystaller
- 3 av 0,1 uF keramiske kondensatorer
- 1 av 47uF elektrolytisk kondensator
- 1 av 10uF elektrolytisk kondensator
- Wirewire i forskjellige lengder.
Hvilken programvare trenger jeg?
Arduino IDE 1.6.9
Hvilke ferdigheter trenger jeg?
- Kunnskap om Arduino IDE
- Noe kunnskap om elektronikk og hvordan man lodder
- Mye manuell fingerferdighet
- Mye tålmodighet og godt syn
Emner dekket
- Generell introduksjon til programmering av Atmel mikrokontrollere
- ISP eller Bootloader: Det hele er litt forvirrende
- Kretsoversikt
- Setter opp programmereren din
- Bruke din Arduino ISP -programmerer
- Utvikler kode på målsystemet
- Gotchas
- Konklusjon
- Referanser brukt
Ansvarsfraskrivelse
Som alltid bruker du disse instruksjonene på egen risiko, og de kommer ikke støttet
Trinn 1: Generell introduksjon om programmering av Atmel mikrokontrollere



Det er to metoder tilgjengelig for programmering av Atmel mikrokontrollere;
- I systemprogrammering (ISP),
- Selvprogrammering (via en bootloader).
Den tidligere metoden (1) programmerer mikrokontrolleren direkte via SPI -grensesnittet etter først å ha satt enheten i reset. Med mindre annet er instruert, skrives et kompilert kjørbart kildeprogram til enheten trinnvis i kodehukommelsen hvor det kjøres ved oppstart. Det er mange ISP -enheter som er i stand til å programmere Atmel -enheter, hvorav noen er (bilde 1); AVRISPmkII, Atmel-ICE, Olimex AVR-ISP-MK2, Olimex AVR-ISP500. Bilde 2 viser hvordan ISP -enheten kobles til ATMega328P (merkelig ICSP) på Arduino Uno R3 -kortet (bilde 3 gir ISP -pinnen ut). Det er også mulig å programmere en Atmel -mikrokontroller via SPI -grensesnittet ved hjelp av en Arduino Uno som ISP (bilde 4), her brukes Uno til å programmere en ATMega328P.
Den sistnevnte metoden (2) bruker en liten kodestubbe kjent som en 'bootloader' som er permanent bosatt i kjørbart kodeminne (vanligvis låst for å forhindre utilsiktet overskriving av bilde 5). Denne koden utføres først ved oppstart eller tilbakestilling av enheten, og lar mikrokontrolleren omprogrammere seg selv med ny kode mottatt via et av grensesnittene fra en kilde ekstern til seg selv. Bootloader-metoden brukes av Arduino IDE til å omprogrammere Arduinos kartlagt som en USB-kommandoport på PCen (Eller MAC, Linux-boks etc., bilde 6) og i tilfelle av Arduino Uno kommuniserer med Atmel-enheten via den serielt grensesnitt på IC Pins 2 og 3 i ATMega328P. Også Arduino Uno (med ATMega328P micrcontroller fjernet) kan brukes til å programmere en ATMega328P via bootloader -metoden som effektivt fungerer som en USB til seriell adapter (bilde 7).
Hva er en USB til seriell adapter?
En USB til seriell adapter er en maskinvare som kobles til PC-ens USB-port og ser ut som en seriell com-port (en arv fra tidligere tider da datamaskiner brukte en seriell kommunikasjonsstandard kjent som EIA-232, V24 eller RS232) slik at du kan sende og motta serielle data på de samme elektriske nivåene til mikrokontrolleren. Når du velger Verktøy -> Port -> COMx fra Arduino IDE kobler/grensesnitt du PC -en til Arduino.
En enhet som denne blir noen ganger referert til som en FTDI (bilde 8, som egentlig er et merkenavn) eller CH340G etc. USB til seriell på Arduino uno oppnås via en ATMega16U2-MU (R) IC ZU4 som i Arduino-skjemaet under.
For klarhetens skyld identifiserer bilde 9 de to Atmel -enhetene og deres respektive ISP -kontakter på Arduino Uno R3.
Merknad 1: Hvis du velger å gå nedover FTDI -enhetsruten, må du kjøpe fra en anerkjent selger, da det har vært mange billige forfalskede enheter på markedet som har mislyktes ved bruk av en Windows -oppdatering.
Anbefalt:
Attiny85 Samtidig programmering eller gresskar med flerfargede øyne: 7 trinn

Attiny85 samtidig programmering eller gresskar med flerfargede øyne: Dette prosjektet viser hvordan du kan kontrollere to 10 mm trefargede vanlige anode-LED-er (flerfargede øyne til Pumpkin Halloween Glitter) med Attiny85-brikke. Målet med prosjektet er å introdusere leseren til kunsten med samtidig programmering og bruk av Adam D
LED -klokke med 555 og 4017 (ingen programmering nødvendig): 8 trinn (med bilder)

LED -klokke ved bruk av 555 og 4017 (ingen programmering nødvendig): Her skal jeg introdusere et prosjekt jeg designet og laget for ca 7 år siden. Ideen med prosjektet er å bruke teller -ICer som 4017 for å generere signaler som styrer blinkingen av lysdioder arrangert som analoge klokkehender
Programmering av brikker med din Arduino - AVR ISP som dekker ATTiny85, ATTiny2313 og ATMega328: 3 trinn

Programmering av brikker med din Arduino - AVR ISP som dekker ATTiny85, ATTiny2313 og ATMega328: Jeg fant dette som et utkast fra mange år siden. Det er fremdeles nyttig for meg, så jeg kommer til å publisere det! Denne instruksen er en samling av kunnskap samlet fra "nettet" og "nstructables". Den dekker programmeringen av AVR Microco
Billigste Arduino -- Minste Arduino -- Arduino Pro Mini -- Programmering -- Arduino Neno: 6 trinn (med bilder)

Billigste Arduino || Minste Arduino || Arduino Pro Mini || Programmering || Arduino Neno: …………………………. Vennligst abonner på YouTube -kanalen min for flere videoer ……. .Dette prosjektet handler om hvordan du grensesnitter en minste og billigste arduino noensinne. Den minste og billigste arduinoen er arduino pro mini. Det ligner på arduino
Introduksjon til 8051 -programmering med AT89C2051 (gjestestjerne: Arduino): 7 trinn (med bilder)

Introduksjon til 8051-programmering med AT89C2051 (Gjestestjerne: Arduino): 8051 (også kjent som MCS-51) er et MCU-design fra 80-tallet som fortsatt er populært i dag. Moderne 8051-kompatible mikrokontroller er tilgjengelige fra flere leverandører, i alle fasonger og størrelser, og med et bredt utvalg av eksterne enheter. I denne instruksjonen