bulkycostscartcheckbox-checkedcheckbox-uncheckedclosecomparison Folder home hook iso list Magnifier NEU picto-tablerating-stars star tooltip warning wishlist

Advies

ATMega328

Het is ongetwijfeld een van de meest succesvolle microcontrollers van de afgelopen jaren. De ATmega328 werd en wordt nog steeds miljoenen keren gebruikt, bijvoorbeeld in de automatiseringstechnologie. Lees hier hoe microcontrollers werken, wat de ATmega zo populair heeft gemaakt en welke rol het Arduino-ontwikkelplatform daarin speelt.



Wat is de ATmega328?

De ATmega328 is een zogenaamde "Advanced Virtual RISC" microcontroller, afgekort AVR. Het werd in 2013 ontwikkeld en klaargemaakt voor serieproductie door het Amerikaanse bedrijf Atmel, dat in 2016 werd overgenomen door Microchip Technology. Hij ondersteunt gegevensverwerking tot acht bits, heeft een intern flashgeheugen van 32 kilobyte en een RAM-geheugen van twee kilobyte. Het wordt gecontacteerd via 28 pinnen.

De chip bevat ook een EEPROM met een opslagcapaciteit van één kilobyte, een analoog-digitaal omzetter met zes kanalen en een resolutie van tien bits, een oscillator voor maximaal 20 megahertz en diverse interfaces.

23 in- en uitgangslijnen en 32 werkregisters voor algemeen gebruik maken hem geschikt voor de meest uiteenlopende taken.

De ATmega328 wordt vaak gebruikt in projecten en autonome systemen waar een eenvoudige, energiezuinige en goedkope microcontroller nodig is.



Hoe werken microcontrollers?

Microcontrollers zoals de ATmega328 zijn in feite kleine computers op een enkele metaaloxide halfgeleiderchip. Zij bevatten een of meer CPU's, een gegevensgeheugen en programmeerbare in- en uitvoerrandapparatuur. Microcontrollers zijn ontworpen voor ingebedde toepassingen, in tegenstelling tot de in PC's gebruikte microprocessoren, die uit verschillende afzonderlijke chips bestaan.

Microcontrollers - of MCU voor "Micro Controller Unit" - worden voornamelijk aangetroffen in automatisch bestuurde producten en apparaten, bijvoorbeeld in motorbesturingssystemen van auto's, implanteerbare medische apparatuur, afstandsbedieningen, kantoormachines, huishoudelijke apparaten, elektrisch gereedschap, speelgoed en andere ingebedde systemen.

Mixed-signal MCU's zijn gangbare, geïntegreerde analoge componenten die nodig zijn om niet-digitale elektronische systemen te besturen.

In de context van het "internet der dingen" zijn MCU's een economisch en populair middel om gegevens te verzamelen, te detecteren en de fysieke wereld te besturen, bijvoorbeeld in het slimme huis.

Typische in- en uitvoerapparaten zijn schakelaars, relais, magneetkleppen, LED's, kleine of aangepaste LCD-schermen, radiofrequentieapparaten en sensoren voor digitale of analoge waarden zoals temperatuur, vochtigheid of lichtintensiteit. 

Embedded systemen hebben meestal geen toetsenbord, scherm, harde schijven, printer of andere typische randapparatuur van een PC. In plaats daarvan worden programmering en testen uitgevoerd via een directe USB-verbinding of speciale hardware, zoals een ISP-programmeerapparaat. Als het programma naar verwachting loopt, kan de besturing worden losgekoppeld van de PC en volledig autonoom worden bediend.


Selectiecriteria voor aanbestedingen

Bij de keuze van een controller moet u eerst nagaan welke randapparatuur uw project vereist. Dit omvat criteria zoals beschikbare communicatie-interfaces of het aantal uitgangs- en ingangspinnen. De verwerkingssnelheid en de geheugenvereisten zijn belangrijk voor het programmaverloop.

De kostenfactor mag bij de ontwikkeling van een project of een ingebed systeem natuurlijk niet worden verwaarloosd. Complexe functies en operaties verhogen de ontwikkelings- en exploitatiekosten. Als het om een eenvoudige toepassing gaat, kan een goedkope regelaar net zo goed het gewenste doel dienen.


Ontwikkelomgevingen voor de ATmega328

De eenvoudigste ontwikkelomgeving is een insteekkaart of breadboard met gestandaardiseerde gaten voor discrete elektronische componenten en IC's.

Op een dergelijk bord kunnen, naast de ATmega en een voeding, sensoren, condensatoren en weerstanden alsmede stuurlijnen flexibel en zonder solderen worden geplaatst.

Voor het testen zijn track savers al tientallen jaren een beproefde methode. Het is echter sneller en gemakkelijker, vooral wat de programmering betreft, om te werken met een ontwikkelingsplatform waarin de ATmega328 centraal staat. We hebben het over Arduino.

Arduino is een bedrijf dat hardware en software ontwikkelt volgens het open source principe: zowel het ontwerp van de hardware als de programma's zijn voor iedereen gratis beschikbaar.

De hardware producten hebben een CC-BY-SA licentie, terwijl de software een licentie heeft onder de GNU Lesser General Public License of de GNU General Public License. Hierdoor kan iedereen Arduino-borden maken en de software verspreiden.

Een van de populairste ontwikkelomgevingen is ongetwijfeld de Arduino Uno. Hij is gebaseerd op de ATmega328P microcontroller en is uitgerust met een aantal digitale en analoge in- en uitgangspennen die kunnen worden aangesloten op diverse uitbreidingskaarten en andere schakelingen. De Uno heeft 14 digitale pinnen, 6 analoge pinnen en kan worden geprogrammeerd met de Arduino IDE (Integrated Development Environment) via een USB-kabel type B. Stroom wordt geleverd via de USB-kabel of een externe bron met spanningen tussen 7 en 20 volt. Het is vergelijkbaar met de kleinere Nano en Leonardo versies.


FAQ – veelgestelde vragen

Wat is het verschil tussen een Uno en een Nano?

De Nano is een klein, compleet en ontwikkelvriendelijk bord, gebaseerd op de ATmega328P en uitgebracht in 2008. Het biedt dezelfde connectiviteit en specificaties als het Uno-bord in een kleinere vormfactor. Er zijn 30 mannelijke connectoren voor in- en uitgang in een Dip-30-achtige configuratie. Met de geïntegreerde ontwikkelingsomgeving IDE kan de Nano net zo gemakkelijk worden geprogrammeerd als de Uno. Ook de stroomvoorziening is identiek: via een micro USB-kabel van het type B, via een voedingseenheid of via een 9-volt batterij.

De Leonardo is ook een heel klein bordje dat wordt aangedreven door de ATmega32u4.

Wat biedt de Arduino-IDE?

De Arduino Integrated Development Environment (IDE) is een platformoverschrijdende toepassing voor Windows, macOS en Linux, geschreven in functies van C en C++. Het wordt gebruikt om programma's te schrijven en te uploaden naar compatibele borden.

De broncode voor de IDE is gepubliceerd onder de GNU General Public License, versie 2 De IDE ondersteunt de talen C en C++ door middel van speciale regels voor het structureren van de code. De door de gebruiker geschreven code heeft slechts twee basisfuncties nodig om het programma "Sketch" te starten: een eenmalige "Setup" en de hoofdprogrammalus "Loop", die continu wordt doorlopen totdat een stoptoestand optreedt.

Nadeel van programmeren in een C-taal: De geschreven code moet eerst worden gecompileerd voordat het programma wordt uitgevoerd, d.w.z. vertaald in een code die de processor begrijpt. Programmeertalen die gebaseerd zijn op een interpreter - bijvoorbeeld Python - kunnen onmiddellijk worden gestart, maar de uitvoeringssnelheid is wat lager.