Forum: Mikrocontroller und Digitale Elektronik Einfachen Mikrocontroller programmieren


von Diagonal D. (diagonal)


Lesenswert?

Hallo,

ich möchte einen Mikrocontroller programmieren der folgendes können 
muss, sobald Strom an einem Pin anliegt muss ein Programm ablaufen der 
an einem Ausgang Pin Strom für exakt 200 mikrosekunden abgibt und dann 
für 100 mikrosekunden pausiert und wieder für 200 mikrosekunden Strom 
abgibt und die Abarbeitung dann beendet. Welchen ganz einfachen 
Mikrocontroller könnt Ihr mir empfehlen, sollte nichts kompliziertes 
sein wenn möglich.

Vielen Dank im Voraus.

Grüsse
Diago

: Verschoben durch User
von lalala (Gast)


Lesenswert?

arduino nano oder ein kleiner atiny

von Peter Lustig (Gast)


Lesenswert?

Moin,

einer der kleinsten von Atmel/Microchip wird sich dabei langweilen.
z.Bsp.: http://www.microchip.com/wwwproducts/en/ATtiny10
oder PIC10F??? im SOT23 oder SC70-6 oder 8DFN

von Manfred (Gast)


Lesenswert?

lalala schrieb:
> arduino nano
Kannst Du garantieren, was der nano in den ersten Millisekunden nach 
Reset macht?

von lalala (Gast)


Lesenswert?

Manfred schrieb:
> Kannst Du garantieren, was der nano in den ersten Millisekunden nach
> Reset macht?

natürlich das, was im Datenblatt steht. Ich wäre aber davon ausgegangen, 
dass der Controller schon läuft und nicht erst mit dem Eingangssignal 
startet.

von lalala (Gast)


Lesenswert?

lalala schrieb:
> natürlich das, was im Datenblatt steht

Ergänzung: Wenn ich das richtig sehe, hat der nano einen Quarz als 
Taktquelle. Daher wird er die ersten Millisekunden darauf warten, dass 
dieser eingeschwungen ist.

Ein nano kann also auf jeden Fall nicht erst mit dem Eingangssignal 
eingeschaltet werden (außer die Fuses werden geändert).

von Stefan S. (chiefeinherjar)


Lesenswert?

lalala schrieb:
> Ein nano kann also auf jeden Fall nicht erst mit dem Eingangssignal
> eingeschaltet werden (außer die Fuses werden geändert).

Laut dem Ausgangspost darf der uC wohl schon laufen und erst im Betrieb 
wird ein Pin auf High geschaltet, was dann alle weiteren Aktionen 
auslösen soll...

Also ja, ein kleiner ATTINY sollte ausreichend sein.

Wahlweise auch mit Arduino-Framework, je nach dem, wie die Anforderungen 
an die Genauigkeit aussieht.

von Besucher (Gast)


Lesenswert?

Na es war doch davon die Rede das "wenn an einem Pin Strom anliegt" 
irgendetwas passieren soll. Wie kommt man denn da bloß auf die Idee das 
es sich dabei unbedingt um den Vcc-Pin handeln muss? Genau für solche 
Zwecke gibt's doch die GPIOs*.

Beside, da von "exakt soundsoviel µs" die Rede war - wie exakt soll's 
denn werden? Und wieviel Strom wird benötigt? Möglicherweise kann man 
hier ja noch den einen oder anderen Tipp zu der Schaltung/der 
Programmierung geben*.


* mal unter der Prämisse das dem TE der Unterschied zwischen Strom und 
Spannung noch nicht vollständig klar ist

von W.A. (Gast)


Lesenswert?

Diagonal D. schrieb:
> exakt 200 mikrosekunden

Was heißt "exakt"?
200.000001 µs oder 199.999999 µs wäre schon falsch?

von Segler (Gast)


Lesenswert?

W.A. schrieb:
> Was heißt "exakt"?
> 200.000001 µs oder 199.999999 µs wäre schon falsch?

Falls ja - mal aus Neugierde, wie würde dann dein nächstes Posting 
lauten?

von Fuesiker (Gast)


Lesenswert?

Im Aufgabenteil des Fuesikbuchs stand frueher™ immer:

"Soweit nichts anderes angegeben ist, ist Rechenstabgenauigkeit 
hinreichend."

von jz (Gast)


Lesenswert?

Und aktuell wird im Studium eine Genauigkeit von 3 signifikanten Stellen 
erwartet - solange nicht was anderes gegeben ist.

von Manfred (Gast)


Lesenswert?

lalala schrieb:
> Manfred schrieb:
>> Kannst Du garantieren, was der nano in den ersten Millisekunden nach
>> Reset macht?
>
> natürlich das, was im Datenblatt steht.
Gibt es ein Arduino-Datenblatt?

Ganz im Ernst: Nach dem Start müsste doch erstmal der Bootloader auf 
eine Anfrage warten - was tun die Dinger da und wie lange?


> Ich wäre aber davon ausgegangen,
> dass der Controller schon läuft
Ich denke, die Frage ist auch so gestellt: Die Schaltung ist bereits in 
Betrieb, wenn das Signal kommt - habe ich ungeschickt interpretiert.

von Rene K. (xdraconix)


Lesenswert?

Manfred schrieb:
> Ganz im Ernst: Nach dem Start müsste doch erstmal der Bootloader auf
> eine Anfrage warten - was tun die Dinger da und wie lange?

Nicht nur das, selbst ohne Bootloader brauchen sie zu lange. Wie ist das 
typische Anschwingverhalten? 4 oder 64ms beim AVR?

von diagonal (Gast)


Lesenswert?

Hallo,

vielen Dank für die vielen Antworten. Mit den pausenzeiten die ich 
angegeben hatte sind die toleranzen schon eingeplant....

Eine andere die sich aus dem Zusammenhang ergibt ist folgende: beim 
blinken eines anderen LED's möchte ich über einen Fototransistor einen 
Prozess anstossen der dann ca. 20 sek dauert und sich dann beendet,
der prozess soll aber nur beim blinken passieren, die LED kann auch 
dauerhaft an oder aus sein, wie kann ich das Schaltungstechnisch am 
besten abfangen ?

Vielen Dank.
Diago

von Georg M. (g_m)


Angehängte Dateien:

Lesenswert?

Diagonal D. schrieb:
> einen Mikrocontroller programmieren
> sollte nichts kompliziertes sein

Kompliziert ist relativ.

Wenn AVR-GCC kompliziert zu sein scheint, dann bleibt nur Arduino übrig.

https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
https://www.arduino.cc/en/Reference/HomePage

von A. S. (Gast)


Lesenswert?

jz schrieb:
> aktuell wird im Studium eine Genauigkeit von 3 signifikanten Stellen
> erwartet

das mag für Ergebnisse gelten.

Bei Angaben ergeben sich die signifikanten Stellen implizit aus der 
Darstellung. Leider nicht eindeutig, bei Nullen am Ende.


100: >> +-0,1µs aber ggf deutlich mehr, z.B. 50 ... 200
100.0: << +-1µs
101µs: <= +-1µs
10000µs : >> +-1µs, jedoch << +-1000µs, da ansonsten die Angabe in ms 
erfolgen muss oder in exp-Schreibweise.

von Stefan F. (Gast)


Lesenswert?

Man könnte auch einen hinreichen genauen Oszillator und einen CD4017 
verwenden.
1
                           ___________
2
              10k         |         Q0|---|>|---+----o Ausgang
3
Takt 10Hz o---[===]---+---|Clk      Q1|---|>|---+
4
                      |   |         Q2|         |
5
                      |   |         Q3|---|>|---+    10k
6
                      |   |         Q4|---|>|---+---[===]---| GND
7
                      |   |         Q5|
8
                      |   |         Q6|---------+
9
                      |   |         Q7|         |
10
Start-Signal o--------)---|Reset    Q8|         |
11
                      |   |         Q9|         |
12
                      |   |___________|         |
13
                      |                         |
14
                      |                         |
15
                      +-----------------|<|-----+
16
                         Stopp Signal

Anstelle der vier Dioden am Ausgang möchte man eventuell lieber ein 
Oder-Gatter verwenden.

Falls du einen Mikrocontroller verwenden möchtest, würde ich dazu einen 
ATtiny25 empfehlen.

von Stefan F. (Gast)


Lesenswert?

> beim blinken eines anderen LED's möchte ich über einen Fototransistor
> einen Prozess anstossen der dann ca. 20 sek dauert und sich dann beendet

Dazu würde ich einen CD4060 verwenden, nach einem ähnlichen 
Schaltungsprinzip wie oben mit dem CD4017.

Der 4060 hat schon einen eingebauten Oszillator, kann aber auch von 
einer extenren Quelle getaktet werden. Den lässt du nach dem Start so 
lange laufen, bis z.B. der letzte Ausgang an geht. Im gegensatz zum 
CD4017 zählt er nicht dezimal von 0 bis 9, sondern binär von 0 bis 
einige tausend. Damit bekommst du die lange Zeit leicher hin. Mit einer 
Diode hälst du dann den Oszillator an.

Wenn Dir die Genauigkeit eine sR/C Oszillators ausreicht, dann kannst du 
den im CD4060 integrierten Oszillator verwenden und damit auch noch 
nebenbei den oben genannten CD4017 takten.

Da der Steuerimpuls länger dauern kann, musst du ihn verkürzen, zum 
beispiel mit einem Kondensator:
1
                100nF
2
Start-Impuls o----||---+-----> Startsignal zu Zähler
3
                       |
4
                      |~|
5
                      |_| 100k Ohm
6
                       |
7
                      GND

Auch das kriegst du natürlich ebenfalls in den ATtiny25 rein. Den musst 
du "nur" programmieren lernen.

von Stefan F. (Gast)


Lesenswert?

Sorry, die 10Hz sind falsch. Ich wollte 10kHz schreiben.

von Georg M. (g_m)


Angehängte Dateien:

Lesenswert?

Stefan U. schrieb:
> Falls du einen Mikrocontroller verwenden möchtest, würde ich dazu einen
> ATtiny25 empfehlen.

Und wenn man bereit ist, 30 Cent mehr zu investieren, bekommt man einen 
ATmega328P schon fertig angelötet mit allen Komponenten.

von Rene K. (xdraconix)


Angehängte Dateien:

Lesenswert?

Georg M. schrieb:
> Stefan U. schrieb:
>> Falls du einen Mikrocontroller verwenden möchtest, würde ich dazu einen
>> ATtiny25 empfehlen.
>
> Und wenn man bereit ist, 30 Cent mehr zu investieren, bekommt man einen
> ATmega328P schon fertig angelötet mit allen Komponenten.

Einen Tiny85, Tiny25, Tiny10,... auch - so ist das nicht.

Ein 328P ist da mit Kanonen auf Spatzen geschossen, meiner Meinung nach.

von oldeurope O. (Gast)


Lesenswert?

Besucher schrieb:
> * mal unter der Prämisse das dem TE der Unterschied zwischen Strom und
> Spannung noch nicht vollständig klar ist

Darfst Du nicht so eng sehen.
Es gibt hier Gäste, die unterscheiden nicht zwischen
groß und hochohmig. Sollen aber angeblich sehr kompetente
Programmierer sein. ;-)

Diagonal D. schrieb:
> sollte nichts kompliziertes
> sein wenn möglich.
74221 ist allerdings ein Doppelmonoflop.

LG
old.

von Stefan F. (Gast)


Lesenswert?

> Ein 328P ist da mit Kanonen auf Spatzen geschossen, meiner Meinung nach.

Das wäre mit bei den aktuellen Preisen ziemlich egal.

von Manfred (Gast)


Lesenswert?

Georg M. schrieb:
> Wenn AVR-GCC kompliziert zu sein scheint,
> dann bleibt nur Arduino übrig.
> [Bild]
Aber bitte nicht mit dem Uno, das ist die mechanisch mit Abstand 
dusseligste Lösung.

Rene K. schrieb:
> Ein 328P ist da mit Kanonen auf Spatzen geschossen, meiner Meinung nach.
Aber die Kanone ist besser als ein Kleinkalibergewehr in zittriger Hand, 
außerdem sehr preisgünstig.

Den AT328 mit Quarz und Spannungsregler auf Platinchen gibt es ab 1,50€ 
als Arduino ProMini. Für den Bastler sind bei einem Einzelstück 50 oder 
80 cent Bauteilekosten nicht von großer Bedeutung.

Für diese einigermaßen simple Aufgabe würde ich darauf zugreifen und das 
in Arduino machen, mit den Nano der ProMini!

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Diagonal D. schrieb:
> sobald Strom an einem Pin anliegt
Definiere "Strom anliegt" bitte genauer...

Was ist die Signalquelle für diesen "Strom"?
Was soll mit dem µC geschaltet werden?

von Georg M. (g_m)


Lesenswert?

Manfred schrieb:
> Aber bitte nicht mit dem Uno, das ist die mechanisch mit Abstand
> dusseligste Lösung.

Mag sein, aber der UNO ist der gebrauchsfertigste einsatzbereiteste 
Arduino.

Für den Nano braucht man u.U. das Breadboard, und für den Mini auch noch 
das Ding für USB.

von Stefan F. (Gast)


Lesenswert?

> Für den Nano braucht man u.U. das Breadboard

Da kann man female Jumper-Kabel auch direkt dran stecken. Wenn man will, 
kann man die Stiftleisten auf die Bauteilseite einlöten, dann sind sie 
wie beim UNO nach oben gerichtet.

Dabei fällt mie gerade ein wichtige Tipp an den TO ein: Falls du billige 
Module aus China kaufst, dann bevorzuge welche, wo die Stiftleisten lose 
mitgeliefert sind (zum selber einlöten).

Ich hatte mal eine Tüte mit 10 fertig gelöteten gekauft, die waren alle 
so schief, daß sie nicht ins Steckbrett passten. Die nachträgliche 
Korrektur war wesentlich Zeitaufwändiger, als die Stiftleisten selbst 
einzulöten.

von Rene K. (xdraconix)


Lesenswert?

Georg M. schrieb:
> Manfred schrieb:
> Aber bitte nicht mit dem Uno, das ist die mechanisch mit Abstand
> dusseligste Lösung.
>
> Mag sein, aber der UNO ist der gebrauchsfertigste einsatzbereiteste
> Arduino.
>
> Für den Nano braucht man u.U. das Breadboard, und für den Mini auch noch
> das Ding für USB.

Ja nun aber also... Für eine Aufgabe, welche drei IOs benötigt, sich ein 
Brett mit 10x6cm hinzustellen... Also bitte ganz ehrlich. Übertreiben 
kann man es wirklich!

Ein Uno ist da die sinnloseste Überlegung überhaupt. Das ist wie wenn 
man sich eine Mensa kauft um sich dort ein paar Eier zu braten.

Und wieso sollte man denn für einen Nano ein Breadboard brauchen?!?

von Manfred (Gast)


Lesenswert?

Rene K. schrieb:
> Ein Uno ist da die sinnloseste Überlegung überhaupt.
Der Uno ist der Standard, um auf Arduino einzusteigen.
Ich mag ihn nicht, weil er recht groß ist und mit seinem Anschlußraster 
nicht auf eine Lochrasterkarte geht.

> Das ist wie wenn man sich eine Mensa kauft
> um sich dort ein paar Eier zu braten.
.. und die Mensa dann mit Tabletts ausstattet, die nicht auf den Tisch 
passen :-)

von Christopher J. (christopher_j23)


Lesenswert?

Achim S. schrieb:
> jz schrieb:
>> aktuell wird im Studium eine Genauigkeit von 3 signifikanten Stellen
>> erwartet
>
> das mag für Ergebnisse gelten.
>
> Bei Angaben ergeben sich die signifikanten Stellen implizit aus der
> Darstellung. Leider nicht eindeutig, bei Nullen am Ende.
>
> 100: >> +-0,1µs aber ggf deutlich mehr, z.B. 50 ... 200
> 100.0: << +-1µs
> 101µs: <= +-1µs
> 10000µs : >> +-1µs, jedoch << +-1000µs, da ansonsten die Angabe in ms
> erfolgen muss oder in exp-Schreibweise.

Das sehe ich allerdings ein bisschen anders. Die erste signifikante 
Stelle ist immer die erste von Null verschiedene Ziffer einer Zahl, d.h. 
12345µs mit drei Signifikanten stellen sind immer 123*10^(-4) Sekunden, 
egal ob diese Größe vorher als 0,012345s oder 12,345ms oder 12345µs 
geschrieben wurde. Natürlich kann man 123*10^(-4)s auch wieder etwas 
leslicher schreiben, z.B. 12,3ms.

von oldeurope O. (Gast)


Lesenswert?

Manfred schrieb:
> mit seinem Anschlußraster
> nicht auf eine Lochrasterkarte geht.

Du meinst den unpassenden Abstand zwischen D7 und D8?

LG
old.

von Bernd K. (prof7bit)


Lesenswert?

>> [nach dem Reset]

lalala schrieb:
> natürlich das, was im Datenblatt steht.

Wenn der Arduino-Nano sowas wie ein Datenbltat hat (hat er das?) dann 
würde da wahrscheinlich drin stehen dass er ne Sekunde lang (plusminus 
Mondphase) nach dem Einschalten im Bootloader herumlungert bevor er 
irgendwas anderes machen kann.

von diagonal (Gast)


Lesenswert?


von Stefan S. (chiefeinherjar)


Lesenswert?

diagonal schrieb:
> Hi,
>
> ist der zum einstieg ok ?:
>
> 
https://www.conrad.de/de/avr-mikrocontroller-in-c-programmieren-franzis-verlag-978-3-645-65019-9-190501.html
>
> Grüsse
> Diago

Wenn ich das richtig sehe ist das nur ein Buch?!

von Stefan F. (Gast)


Lesenswert?

Bücher/Tutorials gibt's auch kostenlos. Zum Beispiel meins 
http://stefanfrings.de/mikrocontroller_buch/index.html

von diagonal (Gast)


Lesenswert?

Hi,

folgendes hatte ich vor:

nach dem Endes des Waschvorgangs von unserer Waschmaschine blinkt eine 
LED in gewissen Zeitabständen ( die blinkt auch in anderen Situationen 
nur dann mit anderen Intervallen), ich hatte mir das so vorgestellt, das 
beim blinken des LED (blinkintervall müsste festgestellt) dann das 
Programm auf dem Mikrocontroller gestartet wird, der dann ein einfaches 
Signal am GPIO Output sendet ( mit einem Sende Muster, so nach dem 
Motto, 3 sek. strom an, 4 sek. pause 4 sek. strom an usw) diesen GPIO 
Ausgang (der das SendeMuster ausgibt) wollte ich an dem 433 MHZ Sender 
anschließen, als Empfänger habe ich einen 433 MHZ empfänger an einem 
Raspberry pi3 der das Signal dann auswerten tut ( auswerten= kommt das 
signal vom sender der Waschmaschine und nicht von der 
Steckdosenfernbedienung etc. etc.)

Manuelles senden eines x beliebigen Sendemusters und automatisches 
auswerten des Signals am Empfänger funktioniert.

So, ich hoffe Ihr könnt mich jetzt gezielt lotsen und nicht vom Thema 
abschweifen ;-)

Als erstes möchte ich einen ATTIny programmieren, welches Einsteiegerset 
( mit USB Programmer oder wie das "Brutzel" teil heissen mag..) könnt 
Ihr mir empfehlen `? ( um links wird gebeten!)

Danke an die Gemeinde.
Diago

von InFo (Gast)


Lesenswert?

Lese das AVR-GGC Tutorial und das Datenblatt des uC, den du benutzen 
möchtest, dann kennst du die Grundlagen. Kaufe dir lieber einen 
anständigen/original Programmer.

Ob du einen Tiny oder Mega als Einstiegsplatform benutzt ist an sich 
egal. Vom Schwierigkeitsgrad her gibt es keinen Unterschied.

von Stefan F. (Gast)


Lesenswert?

> mit USB Programmer oder wie das "Brutzel" teil heissen mag..

ISP Programmieradapter. Ich rate von USBASP Modellen ab, die sind auf 
billiger als billig getrimmt und wegen ihrer Haken und Ösen nicht 
besonders Anfängertauglich. Die Produkte von Diamex sind Ok.

> ich hoffe Ihr könnt mich jetzt gezielt lotsen

Was ist jetzt aus den 200µs geworden? Bin nun etwas verwirrt. Egal, so 
oder so ist der Weg miot dem Mikrocontroller und ihn zu programmieren 
lernen sicher der richtige.

https://www.reichelt.de/Programmer-Entwicklungstools/DIAMEX-USB-ISP/3/index.html?ARTICLE=110344
https://www.reichelt.de/Atmel-Attiny-AVRs/ATTINY-25-20-PU/3/index.html?ARTICLE=69257
https://www.reichelt.de/Scheiben/KERKO-100N/3/index.html?ARTICLE=9265

Und was sonst du noch drumherum brauchst. Vielleicht LED's und 
Vorwiderstände.

von Christopher J. (christopher_j23)


Lesenswert?

InFo schrieb:
> Lese das AVR-GGC Tutorial

Ich glaube er meint 
https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial


Naja, insbesondere das Kapitel über Timer solltest du dir genau 
durchlesen:
https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Die_Timer_und_Z%C3%A4hler_des_AVR


diagonal schrieb:
> ich hatte mir das so vorgestellt, das
> beim blinken des LED (blinkintervall müsste festgestellt) dann das
> Programm auf dem Mikrocontroller gestartet wird

Pulslängen messen kann man mit der "input capture"-Funktion eines 
Timers.


diagonal schrieb:
> der dann ein einfaches
> Signal am GPIO Output sendet ( mit einem Sende Muster, so nach dem
> Motto, 3 sek. strom an, 4 sek. pause 4 sek. strom an usw)

Pulse mit definierter Länge generieren kann mat mit der "output 
compare"-Funktion eines Timers.

: Bearbeitet durch User
von oldeurope O. (Gast)


Lesenswert?

Dieses Tutorial hat mir sehr geholfen:

https://www.youtube.com/watch?v=0wAY3DYihyg&list=PLAB63281B90FB376E

Schau Dir an, ob Du Dir das zutraust.
Wenn ja, Teile in der Bucht bestellen, loslegen, staunen, freuen.

LG
old.

von Manfred (Gast)


Angehängte Dateien:

Lesenswert?

CO2 ist ihm N. schrieb:
> Du meinst den unpassenden Abstand zwischen D7 und D8?

von diagonal (Gast)


Lesenswert?

Hi,

vielen Dank schon einmal für die richtig guten Posts, ich glaube das 
wird ein schönes Projekt danke Euch.

Ich würde mir jetzt zum Einstieg den holen:

http://www.watterott.com/de/AVR-P28-8MHz


Lt. Tutorial:

https://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment

benötige ich noch:

- Controller ATmega8

- USB-ISP-Programmieradapter

- Steckernetzteil benötigt


beim USB-ISD-Adapter bin ich mir nicht sicher welchen ich nehmen soll, 
habt ihr da evtl. einen link ?

Vielen Dank.

Grüsse
Diago

von Rene K. (xdraconix)


Lesenswert?

Ich komme bei den AVR mit den Diamex Programmern ganz gut aus, auch 
unter Windows 10, gibt sich da als STK500 aus, funktioniert tadellos 
unter Atmel Studio.

https://www.diamex.de/dxshop/USB-ISP-Programmer-fuer-Atmel-AVR-Rev2

: Bearbeitet durch User
von PICkel (Gast)


Lesenswert?

Die richtige Antwort auf so P*bsproblem waere ja ein
kleiner 8 pol. PICkel wahlweise in DIP8 oder SO8.

Die haben wenigstens halbwegs (1%) genaue Taktgeneratoren
mit an Bord. Und nicht solche Schaetzeisen wie die AVRs...

Und mit Preisen um 30 ct kann kein Antuino konkurrieren.
Vom Platzbedarf mal ganz abgesehen.

Selbst eine mit gutem Willen aus CMOS-Kaefern zusammengeloetete
Loesung waere wohl teurer.

von Rene K. (xdraconix)


Lesenswert?

PICkel schrieb:
> Die haben wenigstens halbwegs (1%) genaue Taktgeneratoren

Wird bei den Tinys auch mit 1% angegeben - komisch... ;-)

von PICkel (Gast)


Lesenswert?

> den Tinys auch mit 1% angegeben

Angegeben wird viel.
Echte PICkel schaffen das auch im ganzen Temperaturbereich.
Und nicht nur bei schoenem Wetter.

von Stefan F. (Gast)


Lesenswert?

> Ich würde mir jetzt zum Einstieg den holen:

Den würde ich gerade nicht nehmen, denn er ist für den vermutlich ersten 
Dinosaurier der AVR Controller ausgelegt. Als aktuelle Alternative würde 
ich Dir einen Arduino Nano Clone empfehlen. Kostet viel weniger und 
enthält einen aktuelleren AVR.

von Georg M. (g_m)


Angehängte Dateien:

Lesenswert?

> Einfachen Mikrocontroller programmieren

 Einfachen Mikrocontroller einfach programmieren


http://www.ebay.de/itm/CP2102-MICRO-USB-to-UART-TTL-Module-6-Pin-Serial-Converter-STC-Replace-FT232-/172336235482

von Diagonal D. (diagonal)


Lesenswert?

Hi Georg,

gefällt mir ganz gut, macht einen relativ unkomplizierten Eindruck für 
mich,
so wie ich das verstanden habe, wird die Arduino IDE auf dem PC 
installiert und das Board + SerialPort eingestellt und dann kann man 
auch schon sein Sketch entwickeln und über die IDE auf das Board 
flashen, richtig ?

Kannst Du mir evtl. noch sagen ob ich folgende Prozessschritte mit 
diesem Board abbilden kann:

- anschließen eines Fototransistor
- alle 0,01 sek.(variabel) überprüfen ob der Fototransistor Strom 
liefert oder nicht

- wenn ja, an irgendeinem ausgang strom setzen für ca. 10 sek. und dann 
wieder auf start gehen

Vielen Dank.
Grüsse
Diago

von Joachim B. (jar)


Lesenswert?

Georg M. schrieb:
> Für den Nano braucht man u.U. das Breadboard, und für den Mini auch noch
> das Ding für USB.

dann nimmt man den
arduino pro micro 32u4
so klein wie ein Mini mit USB

https://www.google.de/search?client=firefox-b&biw=1280&bih=900&tbm=shop&q=arduino+pro+micro+32u4&oq=arduino+pro+micro+32u4&gs_l=psy-ab.3...31571.34603.0.35412.10.10.0.0.0.0.105.979.6j4.10.0....0...1.1.64.psy-ab..0.0.0.n9XBY945nFQ

von Stefan F. (Gast)


Lesenswert?

Arduino Module haben einen seriellen Bootloader. Um das Programm in den 
Mikrocontroller zu laden, genügt daher ein einfacher USB-UART Adapter 
mit 3,3V oder 5V pegeln.

Arduino Module werden traditionell mit 5V Versorgt, der USB-UART muss 
dann für 5V geeignet sein.

Manche wenige Arduino Module werden mit 3,3V versorgt, dann brauchst du 
eben einen dazu passenden USB-UART.

Viele Arduino Module enthalten den USB-UART bereits, du erkennst sie am 
USB Stecker.

Modelle mit ATmegaxxU Controller brauchen keinen USB-UART, denn die 
haben bereits das USB Interface im Mikrocontroller integriert. Dort 
funktioniert der Anschluss aber nur, wenn eine Firmware vorinstalliert 
ist, was bei originalen Arduino Modulen immer der Fall ist.

Chinesische Nachbauten von Arduino Modulen sind teilweise sehr viel 
billiger. leider werden diese teilweise ohne Bootloader verkauft. Dann 
brauchst du einen ISP programmieradapter, um den Arduino Bootloader mit 
der Arduino IDE erstmalig zu installieren. Danach kannst du deine 
Programme über den seriellen bzw USB port übertragen.

Aber wenn du einen ISP Programmieradapter hast, kannst du ihn auch 
einfach immer zum programmieren verwenden. Dann entfällt der 
Speicherplatzbedarf für den Bootloader (ca 4kB) und auf diese Weise 
kannst du alle ATmega und ATtiny Controller programmieren: sowohl 
einzelne Chips als auch ganze Module, egal ob von Arduiono oder andere 
Marken.

Ein USB-UART ist neben dem Programmieren auch beim Debuggen hilfreich. 
Dein Programm kann Statusmeldungen seriell ausgeben und die zeigst du 
dann auf dem PC in einem Terminalprogramm (z.B. Hterm) an.

Zum Üben würde ich daher auf jeden Fall entweder ein Arduino Modul mit 
integriertem USB-UART verwenden oder die von Georg M empfohlene 
zweiteilige Kombination.

Zusammengefasst:

- ((fast)) alle AVR Mikrocontroller kann man über ISP programmieren. Der 
normale Weg ist bei Arduino aber USB oder seriell über USB-UART Adapter.
- Normale Arduino Module sind AVR Mikrocontroller mit Minimalbeschaltung
- Viele Arduino Module haben einen USB-UART On-Board
- Manche Arduino Module haben einen AVR mit integriertem USB-Port, der 
allerdings erst durch den installierten Bootloader zum Leben erweckt 
wird.
- Alle originalen Arduino Module sind seriell oder über USB dank des 
vorinstallierten Bootloaders Programmierbar, so daß man den ISP 
Anschluss und Adapter erstmal nicht braucht. Chinesische Nachbauten 
werden jedoch teilweise ohne Bootloader geliefert, dann brauchst du 
unbedingt einen ISP Programmieradapter.

Nachdem du dein erstes Projekt fertig hast, würde ich mir mal anschauen, 
wie man ohne Arduino Framework programmiert. AVR bedeutet nämlich nicht 
zwangsläufig Arduino. Man kann AAVR's und Arduino Module auch ohne 
dieses Framewortk programmieren und dadurch mehr Funktionen und mehr 
Leistung heraus holen. Außerdem finde ich es persönlich spannender, 
einen Chip selbst zu beherrschen, anstatt vorgefertige Programmschnipsel 
zu kombinieren.

von Stefan F. (Gast)


Lesenswert?

> Kannst Du mir evtl. noch sagen ob ich folgende Prozessschritte
> mit diesem Board abbilden kann

Ja, das geht mit allen Arduino Modulen.

von Diagonal D. (diagonal)


Lesenswert?

Hi Stefanus,


den der Georg meinte ist ja der hier:

http://www.ebay.de/itm/172336235482?clk_rvr_id=1268270657989&rmvSB=true

das ist ja "nur" ein einteiliges Teil ( weil du in deineme Beitrag von 2 
teilig sprachst...?)

der wird ja mit einem USB zu mikroUSB adapter an den Rechner 
angeschlossen und über die Arduino IDE / Framework bespielt? Oder habe 
ich da etwas nicht ganz verstanden ?


Grüsse
Diago

von Georg M. (g_m)


Angehängte Dateien:

Lesenswert?

Diagonal D. schrieb:
> so wie ich das verstanden habe, wird die Arduino IDE auf dem PC
> installiert und das Board + SerialPort eingestellt und dann kann man
> auch schon sein Sketch entwickeln und über die IDE auf das Board
> flashen, richtig ?

Richtig.



Diagonal D. schrieb:
> Kannst Du mir evtl. noch sagen ob ich folgende Prozessschritte mit
> diesem Board abbilden kann:
>
> - anschließen eines Fototransistor
> - alle 0,01 sek.(variabel) überprüfen ob der Fototransistor Strom
> liefert oder nicht
>
> - wenn ja, an irgendeinem ausgang strom setzen für ca. 10 sek. und dann
> wieder auf start gehen

Ja, natürlich.

Pro Mini (ATmega328P) hat:
14 × Digital Input/Output
 6 × Analog Input (10-bit ADC)

https://store.arduino.cc/arduino-pro-mini

Man muss nur aufpassen, die Boards können sich ein wenig unterscheiden.

von Einer K. (Gast)


Lesenswert?

Diagonal D. schrieb:
> den der Georg meinte ist ja der hier:
>
> Ebay-Artikel Nr. 172336235482
>
> das ist ja "nur" ein einteiliges Teil ( weil du in deineme Beitrag von 2
> teilig sprachst...?)

Das ist ein USB-Serial Adapter.
Der ist nicht Programmierbar.
Wird z.B. dazu benötigt, einen Arduino Pro Mini zu beschreiben.

von Georg M. (g_m)


Lesenswert?

Diagonal D. schrieb:
> das ist ja "nur" ein einteiliges Teil ( weil du in deineme Beitrag von 2
> teilig sprachst...?)
>
> der wird ja mit einem USB zu mikroUSB adapter an den Rechner
> angeschlossen und über die Arduino IDE / Framework bespielt? Oder habe
> ich da etwas nicht ganz verstanden ?

Normalerweise sind Arduinos USB-fähig, aber der PRO MINI ist einfach zu 
einfach und braucht deswegen für die Kommunikation mit dem PC einen 
USB-Serial Adapter.

von Joachim B. (jar)


Lesenswert?

Stefan U. schrieb:
> Arduino Module haben einen seriellen Bootloader. Um das Programm in den
> Mikrocontroller zu laden, genügt daher ein einfacher USB-UART Adapter
> mit 3,3V oder 5V pegeln.
>
> Arduino Module werden traditionell mit 5V Versorgt, der USB-UART muss
> dann für 5V geeignet sein.
>
> Manche wenige Arduino Module werden mit 3,3V versorgt, dann brauchst du
> eben einen dazu passenden USB-UART.

dann spreche es doch aus, Arduino miniPRO mit 8MHz können mit 3,3V oder 
5V laufen, aber da muss man beim Kauf drauf achten, sonst klappt das mit 
der Programmierung aus der IDE (F_CPU 16MHz für 5V oder eben 8MHz für 
3,3V Betrieb) nicht weil die üblicherweise von 16MHz ausgeht, lt. 
Datenblatt aber über 3,3V benötigt!

Arduino F. schrieb:
> Das ist ein USB-Serial Adapter.
> Der ist nicht Programmierbar.
> Wird z.B. dazu benötigt, einen Arduino Pro Mini zu beschreiben.

oder einen mighty mini 1284p

wer verweigert denn die micros? die wären so klein wie ein miniPRO aber 
mit USB

Beitrag #5092154 wurde von einem Moderator gelöscht.
von Manfred (Gast)


Lesenswert?

Diagonal D. schrieb:
> so wie ich das verstanden habe, wird die Arduino IDE auf dem PC
> installiert und das Board + SerialPort eingestellt und dann kann man
> auch schon sein Sketch entwickeln und über die IDE auf das Board
> flashen, richtig ?
Ja. Nimmst Du anstatt des ProMini + USB-Adapter den geringfügig größeren 
Nano, ist USB gleich mit drauf.

Stefan U. schrieb:
> Modelle mit ATmegaxxU Controller brauchen keinen USB-UART, denn die
> haben bereits das USB Interface im Mikrocontroller integriert.
Wo liegt denn eigentlich der Vorteil eines "U" (Micro) gegenüber dem 
Nano mit getrennter USB onBoard?

> Chinesische Nachbauten
> werden jedoch teilweise ohne Bootloader geliefert, dann brauchst du
> unbedingt einen ISP Programmieradapter.
Das ist mir bei einem Ali-Händler einmal passiert, zwei von drei ohne 
Bootloader - nach etwas Zickerei hat er dann 4 USD wieder herausgerückt. 
Wenn ich einen Arduino bestelle, hat der einen Bootlader oder wird als 
defekt beanstandet. Ich habe gerade zwei Nanos bekommen, für 1,62€ pro 
Stück - die laufen sogar.

von Rene K. (xdraconix)


Lesenswert?

Manfred schrieb:
> Wo liegt denn eigentlich der Vorteil eines "U" (Micro) gegenüber dem
> Nano mit getrennter USB onBoard?

In der Arduino-Welt hat dies wohl kaum Vorteile, weil der Bootloader 
dies in Beschlag nimmt. Nimmt man aber den Mega32u4 über ISP an die 
Mache dann kann man damit normale USB Tasks wie USB-CDC oder MassStorage 
oder ähnliches...

Hier hab ich einen Pro Micro z.b. als CDC für den Tacho und die 8x8 
Matrix in Gebrauch. Desweiteren habe ich mal ein Joystick umgesetzt, der 
sich auch wirklich an jedes System incl. PlayStation als Joystick 
anmeldet.

https://youtu.be/FKHrywI2y6Y

Ist aber halt alles in AtmelStudio und via ISP programmiert, ohne 
Bootloader.

von Einer K. (Gast)


Lesenswert?

Rene K. schrieb:
> In der Arduino-Welt hat dies wohl kaum Vorteile, weil der Bootloader
> dies in Beschlag nimmt. Nimmt man aber den Mega32u4 über ISP an die
> Mache dann kann man damit normale USB Tasks wie USB-CDC oder MassStorage
> oder ähnliches...


Geht auch alles mit Arduino...
Der Bootloader ist nur ein paar Sekunden, nach einem Reset, aktiv.



Auch die 16U2 und 8U2 (auf vielen Arduino Boards vertreten) lassen sich 
für solche Zwecke nutzen. Z.B. als HID

von Rene K. (xdraconix)


Lesenswert?

Arduino F. schrieb:
> Z.B.c als HID

HID... Das war's worauf ich gerade nicht gekommen bin ?

Ja aber ist die USB-CDC nicht auf den Bootvektor " umgebogen " ? So das 
man quasi aus dem eigentlich Programm kein Identifier-req mehr empfangen 
kann?! Ich kenn mich mit dem Arduino Bootloader für den MegaxxUx nicht 
aus, ich weiß nur das man den CDC mit 200 Baud ansprechen muss um in den 
Bootloader zu kommen (Greift der Watchdog da zu?!) . Wie gesagt, benutze 
die Pro-Micros ja ausschließlich über AS. (Billiger kommt man an die 
fertige Hardware ja kaum dran)

von Einer K. (Gast)


Lesenswert?

Rene K. schrieb:
> muss um in den Bootloader zu kommen
Wenn Arduino Serial genutzt wird, funktioniert der Sprung in den 
Bootloader über die Baudrateumschaltung. Das ist also Teil des Serial 
Objektes.

Wenn man den USB Port allerdings für irgendwelche HID usw Dinge nutzt, 
ist dieser Weg belegt. Dann muss man beim Upload den Resetknopf drücken, 
damit der Bootloader eine Chance bekommt.

Der USB Port kann also für jede Anwendung genutzt werden, zu welcher der 
ATMega fähig ist.
Mit dem Abstrich, dass man eben den Resetknopf beim/vorm seriellen 
Upload drücken muss.
Bei Nutzung eines ISP Adapters ist das natürlich alles kein Problem.


Also nur eine Hürde, kein echtes Hemmnis.

Rene K. schrieb:
> (Billiger kommt man an die
> fertige Hardware ja kaum dran)
So ist es wohl.

von Georg M. (g_m)


Lesenswert?

Diagonal D. schrieb:
> so wie ich das verstanden habe, wird die Arduino IDE auf dem PC
> installiert und das Board + SerialPort eingestellt und dann kann man
> auch schon sein Sketch entwickeln und über die IDE auf das Board
> flashen, richtig ?

Eventuell können auch Treiber erforderlich sein für:
CH340G
CP2102, CP2104
FTDI FT232R

von Diagonal D. (diagonal)


Lesenswert?

Hi,

als Einstieg habe ich mir jetzt
den Mikrocontroller HT46F47 mit TPS ( Tasten Programmierbarer Steuerung)
geholt, für meine Zwecke und für den Einstieg in die Mikrocontroller 
Welt ist das für mich ok, leicht zu erlernen (je nach Vorkenntnissen 
natürlich),
nur das mit dem PWM Ausgang habe ich noch nicht so ganz verstanden, 
zumindest weiss ich das das für die Pulsweitenmodulation genommen werden 
kann, je nachdem wieviel strom ich auf den Ausgang gebe würde z.B. eine 
LED heller oder dunkler leuchten, mir fehlt noch der Vergleich zwischen 
z.B. A1 (oder A2 ...) auf dem Controller zu PWM auf dem Controller, was 
ist der grundlegende Unterschied ?

Grüsse
Diago

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

> als Einstieg habe ich mir jetzt den Mikrocontroller HT46F47 mit
> TPS ( Tasten Programmierbarer Steuerung) geholt

Eine interessante Entscheidung. Seine Funktionsweise unterscheidet sich 
sehr stark von gewöhnlichen Mikrocontrollern.

von Diagonal D. (diagonal)


Lesenswert?

Stefan U. schrieb:
>> als Einstieg habe ich mir jetzt den Mikrocontroller HT46F47 mit
>> TPS ( Tasten Programmierbarer Steuerung) geholt
>
> Eine interessante Entscheidung. Seine Funktionsweise unterscheidet sich
> sehr stark von gewöhnlichen Mikrocontrollern.

...von der Funktionsweise her dürften die ja identisch sein (Programm 
ablauf)

von Manfred (Gast)


Lesenswert?

Stefan U. schrieb:
> Eine interessante Entscheidung.
Ich lese nur mal die ersten paar Seiten, der Beschreibung: Ich würde 
mir das nicht antun wollen!

von Diagonal D. (diagonal)


Lesenswert?

Manfred schrieb:

> Ich lese nur mal die ersten paar Seiten, der Beschreibung: Ich würde
> mir das nicht antun wollen!


Hi Manfred,

die Einarbeitung würde entsprechend Zeit in Anspruch nehmen, ich hatte 
ja Anfangs mit den Gedanken gespielt auch Raspberry pi3 dafür zu nehmen, 
der zieht aber für einen Akku/Batteriebetrieb viel Strom, daher die 
alternative mit dem "einfachen" Mikrocontroller, der kann mir ja die 
"rechtecksignale" ( für das eigene ÜbertragungsProtokoll) auch erzeugen 
wobei ich "nur" etwas eingeschränkt bin in den Zeitangaben bzw. die 
ZeitIntervalle sind ja vorgegeben, die kann ich aber auch nacheinander 
kombiniert aufrufen so, das ich zumindest fast jede Mikrosekunde 
abbilden kann, der hat auch einen Oszillator ausgang, darüber wäre es 
vermutlich auch möglich, da ich mich etwas intensiver mit Raspberry pi 
beschäftigt hatte, kam immer wieder die Frage auf, wie kann ich einen 
externen sensor, z.B. einen Feuchtigkeitssensor mit einer "Basisstation" 
verbinden, Sensoren können ja auch am Raspi direkt angeschlossen werden 
und als Signal zu einer anderen RaspiStation übertragen werden, man ist 
hier sehr eingeschränkt da man immer wieder auf Netz Strom angewiesen 
ist, mit dem einfachem Microcontroller (der ja ganz wenig Strom zieht) 
kann ich jetzt alle erdenklichen externen sensoren mit dem Raspi als 
"Zentrale" verbinden und daraus wieder meine logiken ableiten wie z.B. 
wenn der Wasseruhr Zähler ununterbrochen 30 Minuten läuft dann sende 
automatisch eine Warn Email (das habe ich schon integriert) etc., höchst 
intressante Kombinationsmöglichkeiten die "alte Elektronik Welt" mit der 
"neuen IT Welt" zu verknüpfen. Sehr sehr spannend.....

Vielen Dank nochmal für alle Beitragsschreiber, tolles Forum tolle 
Leute!

Für alle die es Interessiert, hier ein sehr Interessanter Link zu einer 
Seite wo 2 Microcontroller über ein eigenes Funkprotokoll kommunizieren:

http://ccspicc.blogspot.de/2016/09/extended-nec-protocol-decoder-pic12f1822-c-code.html


Grüsse
Diago

: Bearbeitet durch User
von Einer K. (Gast)


Lesenswert?

Ich halte die  TPS Lösung auch für sehr exotisch.
Aber, wenn es geht, warum nicht.


In meiner kleinen Arduino Welt, würde ich vermutlich auf einem UNO 
entwickeln/testen und dann auf einen Tiny85 portieren.

Alternativ:
Suche mal bei Ebay nach "Attiny85 Digispark" gibts für unter 5Euro in 
DE-Land.

Nebenbei:
Der Thread läuft schon 6 Tage.
Das Problem ist mit Vorkenntnissen in 1 Stunde locker zu lösen.
(falls da nicht noch irgendwo ungenannte Fallen lauern)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.