Arduino: Unterschied zwischen den Versionen

Aus Digital Modellbahn
 
(25 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 28: Zeile 28:
 
|+ [https://www.arduino.cc/en/Products/Compare Arduino Mikrokontroller Vergleich]
 
|+ [https://www.arduino.cc/en/Products/Compare Arduino Mikrokontroller Vergleich]
 
|-
 
|-
! Information  
+
! Information
 +
! Tiny
 
! Arduino UNO
 
! Arduino UNO
 
! Arduino Fio v3  
 
! Arduino Fio v3  
 
! colspan="2" | [https://code.google.com/archive/p/sanguino/ Sanguino]  
 
! colspan="2" | [https://code.google.com/archive/p/sanguino/ Sanguino]  
! Arduino MEGA  
+
! Arduino MEGA
 +
! colspan="2" | WiFi ESP
 
|-
 
|-
! align="left" | Prozessor || ATMega328p || ATMega32U4 || ATMega644p || ATmega1284p || ATMega2560
+
! align="left" | Prozessor || ATtiny 45/85 || ATMega328p || ATMega32U4 || ATMega644p || ATmega1284p || ATMega2560 || ESP8266 || [http://pgahtow.de/wiki/images/ESP32_Pinout.jpg ESP32]
 
|-
 
|-
 
! align="left" | Package  
 
! align="left" | Package  
 +
|| 8-pin PDIP
 
|| 28-pin PDIP <br> 32-lead TQFP <br> 28-pad QFN/MLF <br> 32-pad QFN/MLF
 
|| 28-pin PDIP <br> 32-lead TQFP <br> 28-pad QFN/MLF <br> 32-pad QFN/MLF
 
|| 44-lead TQFP Package <br>  44-lead QFN Package
 
|| 44-lead TQFP Package <br>  44-lead QFN Package
Zeile 42: Zeile 45:
 
|| 40-pin PDIP <br> 44-lead TQFP <br> 44-pad QFN/MLF
 
|| 40-pin PDIP <br> 44-lead TQFP <br> 44-pad QFN/MLF
 
|| 100-lead TQFP <br> 100-ball CBGA
 
|| 100-lead TQFP <br> 100-ball CBGA
 +
|| PCB <br> 2×4 DIL (ESP-01) <br> 2×8 gezahnt (ESP-12)
 +
|| zwei Reihen je 15 Pins
 
|-
 
|-
! align="left" | Speed || 16MHz || 16MHz || 16MHz || 16MHz || 16MHz 
+
! align="left" | Spannung || 5V || 5V || 5V || 5V || 5V || 5V || 3,3V || 3,3V
 
|-
 
|-
! align="left" | Flash || 32k || 32k || 64k || 128k  || 256k
+
! align="left" | Speed || 1-16MHz || 16MHz || 16MHz || 16MHz || 16MHz || 16MHz || 80/160MHz || 240MHz
 
|-
 
|-
! align="left" | RAM || 2k || 2,5k || 4k || 16k || 8k
+
! align="left" | Flash || 4k/8k || 32k || 32k || 64k || 128k || 256k || 512k/1M || 4-32M
 
|-
 
|-
! align="left" | EEPROM || 1k || 1k || 2k || 4k  || 4k
+
! align="left" | RAM || 512b || 2k || 2,5k || 4k  || 16k || 8k || 80k || 512k
 
|-
 
|-
! align="left" | UART || 1 || 1 + USB || 2 || 2  || 4  
+
! align="left" | EEPROM || 512b || 1k || 1k || 2k || 4k  || 4k || Flash only || Flash only
 +
|-
 +
! align="left" | UART || - || 1 || 1 + USB || 2 || 2  || 4 || 2 || 3
 
|-
 
|-
 
! align="left" | Timer  
 
! align="left" | Timer  
 +
|| 2x 8-bit
 
|| 2x 8-bit <br> 1x 16-bit
 
|| 2x 8-bit <br> 1x 16-bit
 
|| 1x 8-bit <br> 2x 16-bit <br> 1x 10-bit
 
|| 1x 8-bit <br> 2x 16-bit <br> 1x 10-bit
Zeile 59: Zeile 67:
 
|| 2x 8-bit <br> 2x 16-bit
 
|| 2x 8-bit <br> 2x 16-bit
 
|| 2x 8-bit <br> 4x 16-bit
 
|| 2x 8-bit <br> 4x 16-bit
 +
|| 6x os_timer (Software) <br> 1x hw_timer (Hardware)
 +
|| capacitive touch, ADCs, DACs, UART, SPI, I2C
 
|-
 
|-
! align="left" | I/O Pins || 20 || 26 || 32 || 32  || 54  
+
! align="left" | I/O Pins || 5 (6) || 20 || 26 || 32 || 32  || 54 || 16 (6/14) || 16 PWM
 
|-
 
|-
! align="left" | Interrupts || 2 || 3 || 3 || 3  || 8  
+
! align="left" | Interrupts(ext.) || 1 || 2 || 3 || 3 || 3  || 8 || all I/O || all I/O
 
|-
 
|-
! align="left" | Analog Inputs || 6 (10-bit) || 12 (10-bit) || 8 (10-bit) || 8 (10-bit) || 16 (10-bit)
+
! align="left" | Analog Inputs || 3 (4) || 6 (10-bit) || 12 (10-bit) || 8 (10-bit) || 8 (10-bit) || 16 (10-bit) || 1 (10-bit) || 18 (12-bit)
 
|-
 
|-
 
|}
 
|}
  
 
====Sanguino Files für Arduino IDE====
 
====Sanguino Files für Arduino IDE====
:* [http://sourceforge.net/projects/pgahtow/files/sanguino1.0.1%20for%20ArduinoIDE-1.6.4.zip Download]  
+
-> [http://sourceforge.net/projects/pgahtow/files/sanguino1.0.1%20for%20ArduinoIDE-1.6.4.zip Download]  
 
* Anpassung der Arduino IDE für die Nutzung des '''ATmega644p''' oder '''ATmega1284p'''
 
* Anpassung der Arduino IDE für die Nutzung des '''ATmega644p''' oder '''ATmega1284p'''
 
* Integration Sanguino via Board Manager by Kristian Sloth Lauszus: https://raw.githubusercontent.com/Lauszus/Sanguino/master/package_lauszus_sanguino_index.json
 
* Integration Sanguino via Board Manager by Kristian Sloth Lauszus: https://raw.githubusercontent.com/Lauszus/Sanguino/master/package_lauszus_sanguino_index.json
Zeile 78: Zeile 88:
  
 
====ATtiny für Arduino IDE====
 
====ATtiny für Arduino IDE====
:* [http://sourceforge.net/projects/pgahtow/files/attiny-ide-1.6.x.zip Download]
 
 
* Programmierung von '''ATtiny44/45/84/85''' mit der Arduino IDE. Hierfür ist ein Arduino UNO notwendig! Dieser wird vorher mit dem Beispiel Sketch unter: Werkzeuge->Programmer->Arduino as ISP programmiert.
 
* Programmierung von '''ATtiny44/45/84/85''' mit der Arduino IDE. Hierfür ist ein Arduino UNO notwendig! Dieser wird vorher mit dem Beispiel Sketch unter: Werkzeuge->Programmer->Arduino as ISP programmiert.
 +
* a) Integration '''Attiny by David A. Mellis''' via zusätzlicher Boardverwalter-URLs: [https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json]
 +
* b) Integration '''ATTinyCore''' via zusätzlicher Boardverwalter-URLs: [http://drazzy.com/package_drazzy.com_index.json http://drazzy.com/package_drazzy.com_index.json]
 
* Einmaliges Setzen der Fuses im ATtiny:  
 
* Einmaliges Setzen der Fuses im ATtiny:  
 
:# Auswahl des Board: Werkzeuge->Platine->ATtiny
 
:# Auswahl des Board: Werkzeuge->Platine->ATtiny
Zeile 87: Zeile 98:
 
:# Schreiben der FUSE: Werkzeuge->Bootloader brennen
 
:# Schreiben der FUSE: Werkzeuge->Bootloader brennen
 
* Hochladen des Sketch mittels ISP über den Arduino UNO
 
* Hochladen des Sketch mittels ISP über den Arduino UNO
 +
 +
== Hochspannungsprogrammierung (High-Voltage-Programming) ==
 +
[[Datei:HVTinyProgrammer.jpg|thumb|220px|HV-Tiny Programmer]]
 +
[[Datei:HVTinyProgrammer_sch.jpg|thumb|220px|Schaltplan des HV-Tiny Programmers ([http://sourceforge.net/projects/pgahtow/files/other%20Arduino%20Projects/HV-Programmer/ArduinoTinyHVProgrammer.sch Eagle])]]
 +
Um alle 6 I/O Pins eines ATTiny45/85 zu nutzen muss der Chip mittels Hochspannungsprogrammierung beschrieben werden. Dies ist notwendig da für eine ISP Programmierung der RESET des Dekoders notwendig ist um die Programmierung zu starten.
 +
 +
Mittels eines kleinen Board kann auch der Arduino UNO dafür genutzt werden den ATTiny mit +12V Hochspannung um zu programmieren. Dazu ist zusätzlich auch ein externes Netzteil notwendig.
 +
 +
Der Programmer kann mittels Serial oder per Taster bedient werden. Standardmäßig kann er zwischen den FUSE für 16MHz PLL (F1;D5;FF) und 16MHz PLL; disable RST (F1;55;FF) je mit Brown-out Level bei 2,7V wechseln.
 +
 +
'''Download'''
 +
* [http://sourceforge.net/projects/pgahtow/files/other%20Arduino%20Projects/HV-Programmer/ArduinoTinyHVProgrammer.ino/download Sketch (28.05.20)] - Arduino Tiny High-Voltage-Programmer
 +
 +
<u>Hinweis:</u> Im Sketch ist die Benennung von High-FUSE und Low-FUSE vertauscht!

Aktuelle Version vom 28. Mai 2022, 21:17 Uhr

Eigenbau | Arduino | AVR-ISP | FUN LED Cube


Arduino logo.jpg

ArduinoUNO.jpg

Viele der zuletzt entwickelten Schaltungen basieren auf dem Open-Source Projekt Arduino.

Arduino IDE

Mit Hilfe der Arduino IDE können die INO Sketch Dateien in die Arduino Atmega Prozessoren geladen werden. Außerdem enthält die Arduino IDE einen Serial Monitor.

Download:

Bibliotheken

Nützlich beim Programmieren mit den Arduino Boards sind libraries, welche es erleichtern Hardware anzusprechen. Im Downloadbereich dieser Webseite findet ihr libaries, welche ich selber für meine Projekte verwende. Vorteil dieser Bibliotheken ist es, sie funktionieren alle fehlerfrei ab der Arduino IDE Version 1.0


Hardware

Arduino Mikrokontroller Vergleich
Information Tiny Arduino UNO Arduino Fio v3 Sanguino Arduino MEGA WiFi ESP
Prozessor ATtiny 45/85 ATMega328p ATMega32U4 ATMega644p ATmega1284p ATMega2560 ESP8266 ESP32
Package 8-pin PDIP 28-pin PDIP
32-lead TQFP
28-pad QFN/MLF
32-pad QFN/MLF
44-lead TQFP Package
44-lead QFN Package
40-pin PDIP
44-lead TQFP
44-pad QFN/MLF
40-pin PDIP
44-lead TQFP
44-pad QFN/MLF
100-lead TQFP
100-ball CBGA
PCB
2×4 DIL (ESP-01)
2×8 gezahnt (ESP-12)
zwei Reihen je 15 Pins
Spannung 5V 5V 5V 5V 5V 5V 3,3V 3,3V
Speed 1-16MHz 16MHz 16MHz 16MHz 16MHz 16MHz 80/160MHz 240MHz
Flash 4k/8k 32k 32k 64k 128k 256k 512k/1M 4-32M
RAM 512b 2k 2,5k 4k 16k 8k 80k 512k
EEPROM 512b 1k 1k 2k 4k 4k Flash only Flash only
UART - 1 1 + USB 2 2 4 2 3
Timer 2x 8-bit 2x 8-bit
1x 16-bit
1x 8-bit
2x 16-bit
1x 10-bit
2x 8-bit
1x 16-bit
2x 8-bit
2x 16-bit
2x 8-bit
4x 16-bit
6x os_timer (Software)
1x hw_timer (Hardware)
capacitive touch, ADCs, DACs, UART, SPI, I2C
I/O Pins 5 (6) 20 26 32 32 54 16 (6/14) 16 PWM
Interrupts(ext.) 1 2 3 3 3 8 all I/O all I/O
Analog Inputs 3 (4) 6 (10-bit) 12 (10-bit) 8 (10-bit) 8 (10-bit) 16 (10-bit) 1 (10-bit) 18 (12-bit)

Sanguino Files für Arduino IDE

-> Download

ESP8266

ATtiny für Arduino IDE

  1. Auswahl des Board: Werkzeuge->Platine->ATtiny
  2. Einstellen des Prozessortyp: Werkzeuge->Prozessor->ATinyXX
  3. Auswahl der Taktfrequenz: Werkzeuge->Clock->8 MHz (internal)
  4. Auswahl des Programmiergerät: Werkzeuge->Programmer->Arduino as ISP
  5. Schreiben der FUSE: Werkzeuge->Bootloader brennen
  • Hochladen des Sketch mittels ISP über den Arduino UNO

Hochspannungsprogrammierung (High-Voltage-Programming)

HV-Tiny Programmer
Datei:HVTinyProgrammer sch.jpg
Schaltplan des HV-Tiny Programmers (Eagle)

Um alle 6 I/O Pins eines ATTiny45/85 zu nutzen muss der Chip mittels Hochspannungsprogrammierung beschrieben werden. Dies ist notwendig da für eine ISP Programmierung der RESET des Dekoders notwendig ist um die Programmierung zu starten.

Mittels eines kleinen Board kann auch der Arduino UNO dafür genutzt werden den ATTiny mit +12V Hochspannung um zu programmieren. Dazu ist zusätzlich auch ein externes Netzteil notwendig.

Der Programmer kann mittels Serial oder per Taster bedient werden. Standardmäßig kann er zwischen den FUSE für 16MHz PLL (F1;D5;FF) und 16MHz PLL; disable RST (F1;55;FF) je mit Brown-out Level bei 2,7V wechseln.

Download

Hinweis: Im Sketch ist die Benennung von High-FUSE und Low-FUSE vertauscht!