Der AVR-/ARDUINO-Faden

Der chaotische Hauptfaden

Moderatoren: Heaterman, Finger, Sven, TDI, Marsupilami72, duese

Benutzeravatar
BMS
Beiträge: 220
Registriert: Di 13. Aug 2013, 10:56

Re: 7 Segmentanzeige mit integriertem Kontroller Anschluss??

Beitrag von BMS »

Die allermeisten Datenblätter sind auf englisch, da kommt man leider nicht drum rum :roll:
SPI steht für Serial Peripheral Interface und ist eine bekannte Schnittstelle, die der Arduino auch kann.
Eine Einleitung dazu: https://wiki.attraktor.org/images/d/d4/ ... on_spi.pdf
Dazu gibt es fertige Bibliotheken für den Arduino.

Du kannst auch noch ein Foto von der Platine hochladen, dann kann man hier besser mithelfen.
Benutzeravatar
Toddybaer
Beiträge: 4704
Registriert: Sa 11. Jun 2016, 13:48
Wohnort: Hemmoor

Re: 7 Segmentanzeige mit integriertem Kontroller Anschluss??

Beitrag von Toddybaer »

Hallo,

hab ein Sketch gefunden für die 7 Segmentanzeige von sparkfun.
aufgespielt und drangetüddelt.
naja, zumindest flackern die meisten LED noch. Ist also irgendwas noch falsch.
Mir fällt gerade auf, das meine Anzeige nur Ziffern hat, könnte damit zusammenhängen.
Benutzeravatar
Chefbastler
Beiträge: 2665
Registriert: Mo 12. Aug 2013, 20:21
Wohnort: Südbayern

Re: 7 Segmentanzeige mit integriertem Kontroller Anschluss??

Beitrag von Chefbastler »

Irgendein lib nehmen geht nicht, es gibt 100erte verschiedene LED-Controller die zwar die selbe Schnittstelle haben, aber die Daten anders codiert haben wollen.

Du kanst schauen obs für deinen LED-Treiber eine fertige lib gibt, wenn nicht musst du dir selbst was schreiben. Im Datenblatt steht genau beschrieben was der LED-Treiber haben möchte.
plottermeier
Beiträge: 1444
Registriert: Fr 16. Aug 2013, 14:32

Re: 7 Segmentanzeige mit integriertem Kontroller Anschluss??

Beitrag von plottermeier »

Unter "mc14489b arduino" findet man recht viel, mach doch mal ne Bildersuche, ob deine Anzeige dabei ist.
Benutzeravatar
Toddybaer
Beiträge: 4704
Registriert: Sa 11. Jun 2016, 13:48
Wohnort: Hemmoor

Re: 7 Segmentanzeige mit integriertem Kontroller Anschluss??

Beitrag von Toddybaer »

Chefbastler hat geschrieben:Irgendein lib nehmen geht nicht, es gibt 100erte verschiedene LED-Controller die zwar die selbe Schnittstelle haben, aber die Daten anders codiert haben wollen.

...
Das hab ich gemerkt. Scheint anders zu sein als bei den LCD´s. Die hab ich alle mit der gleichen Lib zum laufen bekommen.

Und wo kann ich jetzt die Programmiersprache lernen? Muss ja irgendwie von dem einfach nur fertige Programme aufziehen zu ich schreib mir vorhandene Programme um oder ganz selber hinkommen.
plottermeier
Beiträge: 1444
Registriert: Fr 16. Aug 2013, 14:32

Re: 7 Segmentanzeige mit integriertem Kontroller Anschluss??

Beitrag von plottermeier »

Ich such mir immer fertige Programme, die ähnliches machen und modifiziere die dann. Wenn Du Details erklärt haben möchtest, kannst Du hier fragen.
Benutzeravatar
Toddybaer
Beiträge: 4704
Registriert: Sa 11. Jun 2016, 13:48
Wohnort: Hemmoor

Re: 7 Segmentanzeige mit integriertem Kontroller Anschluss??

Beitrag von Toddybaer »

ich glaub ich braue mehr Kenntnisse und Erfahrungen in der Programmierung um entsprechend die Programme zu ändern....

So nun muss ich mein Geraffel aber ersteinmal wieder zusammenpacken

MFG Thorsten
Benutzeravatar
Geistesblitz
Beiträge: 1934
Registriert: Di 5. Nov 2013, 17:53
Wohnort: Dresden

Re: 7 Segmentanzeige mit integriertem Kontroller Anschluss??

Beitrag von Geistesblitz »

Ich glaub, du bräuchtest mal wen, der dir vor Ort helfen kann ;)
Benutzeravatar
Heaterman
Beiträge: 3990
Registriert: Fr 28. Jun 2013, 10:11
Wohnort: Am Rand der Scheibe, 6 m unter NN

Re: 7 Segmentanzeige mit integriertem Kontroller Anschluss??

Beitrag von Heaterman »

Ich hab Dir doch eine PDF geschickt mit dem Kurs zum Arduino-C. Du willst zu hoch einsteigen, Du musst mehr Geduld haben. Erst mal die Programmstrukturen, die Schleifen und Syntax grundsätzlich einziehen und an den Beispielprogrammen in der IDE durchmachen, sonst verläufst Du Dich ewig.
Und in dem Buch, das ich beigelegt hab, ist garantiert SPI beschrieben.
Ansonsten schick ich Dir die Tage mal ein Programmbeispiel.

Btw. Einverstanden, dass ich das Ganze in den Arduino-Thread verlege, damit das alles auf einem Fleck bleibt?
Benutzeravatar
Toddybaer
Beiträge: 4704
Registriert: Sa 11. Jun 2016, 13:48
Wohnort: Hemmoor

Re: 7 Segmentanzeige mit integriertem Kontroller Anschluss??

Beitrag von Toddybaer »

Heaterman hat geschrieben:Ich hab Dir doch eine PDF geschickt mit dem Kurs zum Arduino-C. Du willst zu hoch einsteigen, Du musst mehr Geduld haben. Erst mal die Programmstrukturen, die Schleifen und Syntax grundsätzlich einziehen und an den Beispielprogrammen in der IDE durchmachen, sonst verläufst Du Dich ewig.
Und in dem Buch, das ich beigelegt hab, ist garantiert SPI beschrieben.
Ansonsten schick ich Dir die Tage mal ein Programmbeispiel.

Btw. Einverstanden, dass ich das Ganze in den Arduino-Thread verlege, damit das alles auf einem Fleck bleibt?
Das Buch hab ich gerade am Wickel. Mit Hilfe vom Buch und dem Datenblat zum Kontroller, der auf der Segmentanzeige ist da vernünftige Zeichen zu generieren ist noch zu hoch für mich. Hatte die halt da und wollt mal schauen ob die noch geht, weil sonst gleich weg mit dem Ding.
LCD Anklemmen und TExt anzeigen lassen ist schon möglich. Werd mir die PDF mal genauer ansehen. Mir fehlt einfach noch gewaltig die Programiersprache

MFG Thorsten
Sir_Death
Beiträge: 3446
Registriert: Mo 11. Mai 2015, 22:36
Wohnort: südlich von Wien

Re: Der AVR-/ARDUINO-Faden

Beitrag von Sir_Death »

Brauch mal kurz eure Hilfe beim denken:

Folgende Ausgangssituation:
Ich will an einem ADC-Pin des Arduino mit einem Poti einen Sollwert einstellen.
Dabei ist es nahezu egal wie exakt der Wert ist (solange ich den gesamten Digital-Bereich ausnutzen kann).
Wichtig ist jedoch, dass der Wert möglichst stabil ist.

Jetzt habe ich jedoch das Problem, dass das Poti etwas weiter entfernt sitzt (ca. 80cm Draht - geht nicht anders) und sich jede Menge Mist einfängt, und damit der Eingang wackelt.
Als einfachste Lösung würde mir ein kleiner Kondensator am Eingang einfallen, der den Wert mittelt. Jedoch soll eine Sollwertänderung von nix auf Maximum (oder umgekehrt) innerhalb - ich sag mal - 1 bis 2 Sekunden möglich sein.
Da beißt sich naturgemäß der Wunsch "möglichst Stabil" mit "rasche Sollwertänderung".


Hmmmm...
OK - Hab mir schon selber geholfen, durchs niederschreiben :-) - einfach mal die passende Zeitkonstante berechnen gehen - mal schauen, ob das was passendes ausspuckt...
Danke fürs zuhören/lesen - manchmal sieht man um die Uhrzeit den Wald vor lauter Bäumen nicht mehr :-)
Anse
Beiträge: 2278
Registriert: Mo 12. Aug 2013, 21:30
Wohnort: Bühl (Baden)

Re: Der AVR-/ARDUINO-Faden

Beitrag von Anse »

Impendanzwandler direkt am Poti?
Benutzeravatar
Bastelbruder
Beiträge: 11483
Registriert: Mi 14. Aug 2013, 18:28

Re: Der AVR-/ARDUINO-Faden

Beitrag von Bastelbruder »

Ich vermute mal Einstreuung diversen Mülls der wahrscheinlich weniger in Form von 50Hz-Brumm auftritt sondern mehr in Form hochfrequenter (Bus-)Signale die mit kleinsten Streukapazitäten eingekoppelt werden.

Direkt am ADC ein kleiner Kondensator zur "Masse"referenz, UND in die Signalleitung davor ein Widerstand in der Größenordnung des Potiwiderstands. Dann ist auch die Berechnung der Zeitkonstante nicht so sehr von der Schleiferstellung abhängig.
Nicht vergessen: für 10 Bit sind grob 7 tau anzusetzen.
Benutzeravatar
ferdimh
Beiträge: 9381
Registriert: Fr 16. Aug 2013, 15:19

Re: Der AVR-/ARDUINO-Faden

Beitrag von ferdimh »

Der Müll ist meiner Erfahrung mit 100n am Eingang eigentlich immer entsorgbar. Bedenke aber, dass das unterste Bit vom AVR-ADC auch unter besten Bedingungen eher als Lottozahl taugt. Egal wie grob du rasterst, irgendwann dreht jemand das Poti genau an die Kante.
Dagegen hilft nur Glätten in Software und Hysterese.
Benutzeravatar
Bastelbruder
Beiträge: 11483
Registriert: Mi 14. Aug 2013, 18:28

Re: Der AVR-/ARDUINO-Faden

Beitrag von Bastelbruder »

Ich plädiere grundsätzlich für einen Reihenwiderstand in die Signalleitung. Masse und Versorgung (?=Referenz) dürfen an je einer Gleichspannungs"masse" angeschlossen werden. Man verhindert damit EMV-Probleme aller Art. Denn die Massehure in unmittelbarer Nähe eines Kleinhirns ist sowas von undefiniert und von Außen wie aus dem Inneren versaut (wie viele Andere auch).
Wie oft hat sich ein Professor schon aufgehängt, weil einen Meter weiter ein ESD-Ereignis stattgefunden hat das mittels unqualifizierter "Entstörkondensatoren" ins Allerheiligste getragen wurde...
Benutzeravatar
Arndt
Beiträge: 2589
Registriert: Fr 28. Jun 2013, 13:42
Wohnort: einen Schritt über den Abgrund hinaus

Re: Der AVR-/ARDUINO-Faden

Beitrag von Arndt »

Ich hätte da gern mal ien Problem.....

Und zwar quäle ich mich hier gerade mit so einem Arduino herum, der partout kein 2-Zeilendisplay ansprechen will.
Grundsätzlich brauche ich für den Savonius einmal eine Plattform zum zählen der Umdrehungen und Auswertung der Windgeschwindigkeit. Später dann vielleicht auch Aussentemperatur, SD-Karte, RTC, und sonstigem Zeugs, aber fangen wir klein an.

Der Arduino gehört zu einem Franzis-Set und lag halt rum (also nachdem man mal alle Experimente durchgespielt hat :D) und da dachte ich mir: Dat arme Dingen! Der muss was zu tun kriegen....... hätte ich man nicht gedacht....
Bild->zoom
Das LCD hört auf den Namen L2432 und kommt von Pollin, ein Standard 0815HD44780dingsbums, eigentlich auch kein Thema
http://www.pollin.de/shop/dt/NzU4OTc4OT ... 0wodEzgOIQ

Das ganze vorhaben folgt momentan noch diesem Tutorial und sollte eigentlich kein Problem sein: ...sollte...
LiquidCrystal Lib rein und los gehts.
https://www.arduino.cc/en/Tutorial/HelloWorld
Bild->zoom

aaaber das Display zeigt erstmal nichts an *grmpf*
Im Schaltplan ist oben rechts ein Jumper (SV2) zu erkennen, welcher die LEDs auf der Rückseite nach Masse zieht.
Bild->zoom

wenn ich diese "Pulldowns" mal abziehe, passiert folgendes :lol:
Ist ganz witzig, aber nicht dass, was ich erwarte
Bild->zoom

Verkabelung ist schon 5-mal geprüft, daran kanns nicht liegen und auch ein Ersatz-display auf Steckbrett zeigt das gleiche verhalten. :(
Ist Arduino !=Arduino, oder bin ich einfach eben zu rammdösig?
Sir_Death
Beiträge: 3446
Registriert: Mo 11. Mai 2015, 22:36
Wohnort: südlich von Wien

Re: Der AVR-/ARDUINO-Faden

Beitrag von Sir_Death »

Danke für die vielen Inputs.
Es ist ein 10bit ADC, der Wert hat um +/-80 gewackelt - ein bisschen viel...

@Anse: Impedanzwandler hat nix geholfen, weil - siehe unten

@Bastelbruder: Korrekt :-) 12kHz vom Schaltwandler für die extra vom Arduino getrennten 5V, damit dessen Sauerein mir das Analogsignal nicht versauen....
Sereinwiderstand wäre ein bissserl mühsam gewesen (Poti hat 3MOhm), 100n war mein erster Versuch, hat nix gebracht.

@ferdimh: nachdem mir ca. 8bit reichen, kann ich die letzten 2 bits wackeln lassen wie sie wollen.
Glätten mit der Software: Das war dann auch die Lösung. Ein Rolling Average über 8 Werte reicht, dass bei 8bit nur noch selten das letzte bit wackelt - das ist OK.


@Arndt: Das wird mit der Standard Liquid Crystal Lib möglicherweise so nicht gehen. Meines Wissens nach kann die nur 1602 (1 Controller) und 2004 (3 Controller - 1 oben 1 unten, 1 zum umschalten) - du hast aber 2402 (2 Controller nebeneinander) - Die Controller sind die schwarzen Kleckse auf der Rückseite.

Weiters sehe ich bei dir nur die Anzahl an Leitungen, die für den 4-bit Modus notwendig sind - im Datenblatt deines Displays sehe ich keinen Hinweis, auf den 4bit Modus wie die HD44780 ihn machen. - Probiers mal mit dem 8bit-Modus-Anschluss - vielleicht mag es dann (wenn die Lib das denn kann - siehe oben)

Ansonsten gibt's die 1602 Displays beim freundlichen Chinesen inkl. I2C -Controller um ca. EUR 2,60. I2C hat den Vorteil, dass du am Arduino nur 2 Pins brauchst
Benutzeravatar
Arndt
Beiträge: 2589
Registriert: Fr 28. Jun 2013, 13:42
Wohnort: einen Schritt über den Abgrund hinaus

Re: Der AVR-/ARDUINO-Faden

Beitrag von Arndt »

Sir_Death hat geschrieben:@Arndt: Das wird mit der Standard Liquid Crystal Lib möglicherweise so nicht gehen. Meines Wissens nach kann die nur 1602 (1 Controller) und 2004 (3 Controller - 1 oben 1 unten, 1 zum umschalten) - du hast aber 2402 (2 Controller nebeneinander) - Die Controller sind die schwarzen Kleckse auf der Rückseite.
Das verstehe ich nicht ganz, ich dachte HD44780-kompatibles Display = kompatibel mit HD44780-kompatibler Lib...
Wo findet man die Info mit den Controllern?
Hier wirbt sogar jemand explizit damit, dass das geht und er hat (auf den ersten Blick sogar das gleiche Wiring...)
http://www.ebay.de/itm/2402-24x2-Zeiche ... 2137492096

Mit diesem Display (LC1628-BMDWH6) als zweites Versuchskaninchen auf einem separaten Steckbrett gab es leider auch das gleiche Ergebnis :(
https://www.google.de/url?sa=t&rct=j&q= ... 1w&cad=rja
Weiters sehe ich bei dir nur die Anzahl an Leitungen, die für den 4-bit Modus notwendig sind - im Datenblatt deines Displays sehe ich keinen Hinweis, auf den 4bit Modus wie die HD44780 ihn machen. - Probiers mal mit dem 8bit-Modus-Anschluss - vielleicht mag es dann (wenn die Lib das denn kann - siehe oben)
Ja richtig, das Display soll im 4-Bit-Modus laufen, laut Datenblatt kann es das auch:
L2432.pdf
(81.91 KiB) 158-mal heruntergeladen
Ansonsten gibt's die 1602 Displays beim freundlichen Chinesen inkl. I2C -Controller um ca. EUR 2,60. I2C hat den Vorteil, dass du am Arduino nur 2 Pins brauchst
Argh, Du hast ja recht, aber das Display lag im letzten Aal-paket..... es fällt mir schwer so schnell aufzugeben und neu zu kaufen.... :roll:
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Der AVR-/ARDUINO-Faden

Beitrag von Fritzler »

FALSCH!
Alles bis 80 Zeichen ist EIN Controller mit zusätzlichen Spaltentreibern.
Diese Treiber steuert der Controlelr selber/durchsichtig an.
Also selbst ein 2x40 LCD wäre noch eines mit einem COntroller.
Lektüre: http://www.sprut.de/electronic/lcd/
Ordentliche Lib: http://homepage.hispeed.ch/peterfleury/ ... tware.html

DIsplays mit 2 COntrollern erkennt man an 2 Enable Pins und hier ist nur einer vorhanden.
Benutzeravatar
Arndt
Beiträge: 2589
Registriert: Fr 28. Jun 2013, 13:42
Wohnort: einen Schritt über den Abgrund hinaus

Re: Der AVR-/ARDUINO-Faden

Beitrag von Arndt »

:oops: :oops: :oops: :oops: :oops: :oops:
AAAAHHHHHH mea culpa, nu geht's!!!

Bild->zoom

Ich hatte bei dem bescheidenen (weil versetzten) Platinenaufdruck verzählt und somit RS(12) und EN(11)-Pin vom Display um 1 versetzt!
Bild->zoom
Zum Messen ob das Pinning stimmt, hatte ich immer die Stiftleiste aus der Buche gezogen und nicht von unten auf der Arduino-platine gemessen :roll:

Besten Dank für Euren Beistand, nun kann es dann ja richtig losgehen :D
Benutzeravatar
Raja_Kentut
Beiträge: 1528
Registriert: Mi 14. Aug 2013, 13:11
Wohnort: Veitsbronn-Bernbach

Re: Der AVR-/ARDUINO-Faden

Beitrag von Raja_Kentut »

Nu isses soweit - ich bin auch mitm Adruino angefangen. Mein allerserstes Bastelprojekt mit Mikrokontroller...

Ich habe mit beim Schinesen einen Leonardo Micro und einen SHT31 Temperatur- und Feuchtigkeitsmesser gekauft.
Zusammengetüdelt, noch eine LED an PIN4, von irgendwo eine Library und Testprogramm runtergeladen. Geht. Fast.

Mein Programm läuft, die LED geht an wenn der Taupunkt der gemessenen Luft unter 12°C liegt.
ABER NUR, WENN ICH IN DER IDE DEN SERIAL MONITOR STARTE. Bevor der Serial Monitor gestartet wird läuft das Programm nicht los.

Wenn ich den Arduino nur an 5V anschließe, läuft das Programm auch nicht los.
Was muß ich tun damit das Programm bei Power-Up von selbst losläuft ?

Hier das Programm :
/***************************************************
This is an example for the SHT31-D Humidity & Temp Sensor

Designed specifically to work with the SHT31-D sensor from Adafruit
----> https://www.adafruit.com/products/2857

These sensors use I2C to communicate, 2 pins are required to
interface
****************************************************/

#include <Arduino.h>
#include <Wire.h>
#include "Adafruit_SHT31.h"

float ttp = 0; // RK : Definition Variable für Taupunkt
int Fan = 4; // RK : Pin4 heisst Fan und schaltet Lüfter an/aus

Adafruit_SHT31 sht31 = Adafruit_SHT31();

void setup() {
Serial.begin(9600);

while (!Serial)
delay(10); // will pause Zero, Leonardo, etc until serial console opens

Serial.println("SHT31 test");
if (! sht31.begin(0x44)) { // Set to 0x45 for alternate i2c addr
Serial.println("Couldn't find SHT31");
while (1) delay(1);
}
pinMode(Fan, OUTPUT); //RK : PIN4 als Output = Schaltausgang
digitalWrite (Fan, LOW); // RK : Bei Programmstart Lüfter aus
}
void loop() {
float t = sht31.readTemperature();
float h = sht31.readHumidity();

ttp = t - (100-h)/5; // RK: Berechnung Taupunkt

if (! isnan(t)) { // check if 'is not a number'
Serial.print("Temp *C = "); Serial.println(t);
} else {
Serial.println("Failed to read temperature");
}

if (! isnan(h)) { // check if 'is not a number'
Serial.print("Hum. % = "); Serial.println(h);
Serial.print("Taupkt *C = "); Serial.println(ttp); // RK:Ausgabe Taupunkttemperatur
} else {
Serial.println("Failed to read humidity");
}
Serial.println();

if (ttp < 12) { // RK :Wenn Taupunkttemperatur <12 Grad C Lüfter an
digitalWrite (Fan, HIGH);}
else {digitalWrite (Fan, LOW);}

delay(1000);
}

Bitte um Anschub...

feuchte Grüße
RK
Benutzeravatar
zauberkopf
Beiträge: 9481
Registriert: So 11. Aug 2013, 15:33
Wohnort: gefährliches Halbwissen

Re: Der AVR-/ARDUINO-Faden

Beitrag von zauberkopf »

while (!Serial)
delay(10); // will pause Zero, Leonardo, etc until serial console opens
Benutzeravatar
Raja_Kentut
Beiträge: 1528
Registriert: Mi 14. Aug 2013, 13:11
Wohnort: Veitsbronn-Bernbach

Re: Der AVR-/ARDUINO-Faden

Beitrag von Raja_Kentut »

ah -ich hatte das interpretiert als "lass mal 10 Sekunden warten damit das Terminal-Dings richtig losläuft...

DANKE !
Benutzeravatar
zauberkopf
Beiträge: 9481
Registriert: So 11. Aug 2013, 15:33
Wohnort: gefährliches Halbwissen

Re: Der AVR-/ARDUINO-Faden

Beitrag von zauberkopf »

ah -ich hatte das interpretiert als "lass mal 10 Sekunden warten damit das Terminal-Dings richtig losläuft...
Du.. das kann ich sogar nachvollziehen !

Ich persönlich hasse die Leute die C standardisiert haben, dafür, das man für einen Befehl, keine geschweifte Klammer braucht.
Gottverdammte 2 Bytes oder 2 Tastendrücke.
Schon bei Perl habe ich mir angewöhnt, möglichst leserlichen Code zu schreiben, weil man ja nie weis, wann man wieder dran muss.
Und mein Hirn nicht mit einem grossen Speicher gesegnet ist... ;-)
Benutzeravatar
ferdimh
Beiträge: 9381
Registriert: Fr 16. Aug 2013, 15:19

Re: Der AVR-/ARDUINO-Faden

Beitrag von ferdimh »

Ich LIEBE die Jungs bei C dafür, ...
Ich mag das die Klammer als "Achtung großer Block" Symbol. Diese Wirkung geht verloren, wenn man alles und jeden klammert.

Das Problem ist hier eher der Schwachmat, der seinen Code nicht gescheit einrückt, was die Lesbarkeit dann etwas unter 0 setzt.
Tizi
Beiträge: 476
Registriert: Mo 12. Aug 2013, 20:27
Wohnort: 74572 Gammesfeld
Kontaktdaten:

Re: Der AVR-/ARDUINO-Faden

Beitrag von Tizi »

FRAGE:

Ich nutzte das myAVR MK2-Board mit ISP Schnittstelle zum Programmieren.
Habe mir nun ein Adapterkabel von ISP auf offene Enden (Steckbrett) gelötet.
Die Stromversorgung scheint zu gehen und auch beim Durchgangsprüfen geht alles.
Noch jemand eine Idee wieso das myAVR Progtool den Atmega8 nicht erkennt=?
Benutzeravatar
Heaterman
Beiträge: 3990
Registriert: Fr 28. Jun 2013, 10:11
Wohnort: Am Rand der Scheibe, 6 m unter NN

Re: Der AVR-/ARDUINO-Faden

Beitrag von Heaterman »

Das myAVR ProgTool ist manchmal zickig beim Erkennen von Chips. Oft hilft es, einfach mal in der Chipliste eine andere Chipvariante einzustellen und nach einem Ausleselauf wieder mit der richtigen Chipversion zu starten. Oder einen anderen Chip des gleichen Typs probieren, führt auch manchmal zum Erfolg.
Tizi
Beiträge: 476
Registriert: Mo 12. Aug 2013, 20:27
Wohnort: 74572 Gammesfeld
Kontaktdaten:

Re: Der AVR-/ARDUINO-Faden

Beitrag von Tizi »

hab ich schon probiert.
komisch: info Fenster wird Grün aber ohne Chip-Typ und Auslesen kommt rot...

weiss evtl. jemand wie ich es im Bascom testen kann? hatte da den Programmer schon mal am laufen aber weiss die einstellungen nimmer
Benutzeravatar
Chrissy
Beiträge: 1078
Registriert: So 11. Aug 2013, 16:46
Wohnort: Dresden JO61ua
Kontaktdaten:

Re: Der AVR-/ARDUINO-Faden

Beitrag von Chrissy »

Ich bin ja meistens jemand, der es mit Bob Pease hält: "My favourite programming language is: solder", aber ab und an kommt man halt doch nicht drumherum, irgendwas mit Digital zu machen. Ich möchte gerade meine selbst gebastelte Nixie Uhr testen. Dazu möchte ich eigentlich nur die Röhren dazu bringen, irgendetwas anzuzeigen.

Mein Setup sieht etwa so aus: ESP8266 (Modul ESP12e) treibt zwei HV5812, also Schieberegister mit 20 Ausgängen, die die Hochspannung der Nixies direkt schalten können. Beide Schieberegister hängen hintereinander. Der Datenpin ist die GPIO5, Der Clockpin ist die GPIO4 und dann gibt es noch den Latchpin, GPIO9.

Mittels der Funktion ShiftOut sollte man ja eigentlich in das Schieberegister Daten pumpen können. Die Funktion gestattet es auch explizit jeden digitalen Ausgang für die jeweiligen Signale zu verwenden, man ist also nicht auf das SPI Interface angewiesen. Ich war bei meinem Design natürlich dumm genug, nicht das SPI Interface für die Verbindung zum Schieberegister zu verwenden, sondern irgendwelche GPIO Pins.

Wenn ich also nun in meiner Funktion meine Pins definiere und den Code hochlade, passiert etwas interessantes: Der ESP macht meistens nichts und manchmal kotzt er die Daten aus dem SPI Interface, aber nicht aus den Pins, die ich vorher definiert habe.

Ich kann mir das gerade nicht erklären. Jemand eine Idee, was da schief gelaufen sein könnte?

Edit: Im Endeffekt habe ich den im obigen Link angegebenen Beispielcode verwendet und da meine Pinnummern angepasst. Das sollte ja erst mal reichen, um irgendwelche nicht näher definierten Ziffern auf den Röhren anzuzeigen.
Benutzeravatar
Sunset
Beiträge: 1498
Registriert: Fr 6. Dez 2013, 15:19

Re: Der AVR-/ARDUINO-Faden

Beitrag von Sunset »

Kannst Du mal Deinen Code posten bitte?!

Sind die Pin Mode gesetzt nachdem die Pins definiert sind?
Benutzeravatar
Chrissy
Beiträge: 1078
Registriert: So 11. Aug 2013, 16:46
Wohnort: Dresden JO61ua
Kontaktdaten:

Re: Der AVR-/ARDUINO-Faden

Beitrag von Chrissy »

Code: Alles auswählen

  
 const int latchPin = 9;  //Pin connected to ST_CP(pin 12) of 74HC595
   const int clkPin = 4; //Pin connected to SH_CP(pin 11) of 74HC595
   const int dataPin = 5;  //Pin connected to DS(pin 14) of 74HC595
   
   void setup() {    
      pinMode(latchPin, OUTPUT);
      pinMode(clkPin, OUTPUT);
      pinMode(dataPin, OUTPUT);
      pinMode(10,OUTPUT);
      digitalWrite(10,LOW);
 
    }

void loop() {
  digitalWrite(latchPin,HIGH);
  shiftOut(dataPin, clkPin, MSBFIRST, 0xFFFFFFFFFA); 
  digitalWrite(latchPin, LOW);
}
Das ist der Code mit dem ich testen wollte, ob das Teil überhaupt irgendwie mit dem Beinchen wackelt. Sollte nichts sinnvolles tun, sondern nur ein paar Daten in die Schiebegegister schieben.

Mittlerweile ist auf den esp aber ein micropython gewandert, da mir die Arduino IDE auf die Nerven ging. Ich versuche jetzt mein Glück mal mit Python.

Allerdings habe ich mittlerweile in den Untiefen des Internets gelesen, dass man die GPIO9 und GPIO10 gar nicht nutzen sollte, da der Flash an den gleichen Pins hängt und sich deswegen der Controller ständig aufhängt. Das könnte das komische Verhalten des Controllers erklären.

In der Dokumentation zu dem ESP12 Modul steht davon aber natürlich nichts :evil:
bestfakeaccount
Beiträge: 23
Registriert: Mi 7. Jun 2017, 00:14

Re: Der AVR-/ARDUINO-Faden

Beitrag von bestfakeaccount »

Das mit den Pins GPIO9 und 10 kann ich bestätigen. Das sind die zusätzlichen Datenleitungen für den SPI Flash. Du kannst probieren diese zu nutzen, dafür müssen die dazugehörigen Pins am Flash auf Vcc gezogen werden und der Flash Mode auf QIO umgestellt. Durch den verringerten Durchsatz läuft dein Programm dementsprechend langsamer. Alle oberen Angaben beziehen sich auf das Modul ESP201 sollten aber für alle Module gelten.

In allen Fällen ist es natürlich einfacher den Pin umzulegen, hierzu vllt. noch die folgende Übersicht: http://www.esp8266.com/wiki/lib/exe/fet ... ctions.png
Ich würde ESP Module nur in good old C mit dem FreeRTOS Port (siehe https://github.com/SuperHouse/esp-open-rtos) programmieren.
Matt
Beiträge: 6084
Registriert: So 24. Aug 2014, 21:22

Re: Der AVR-/ARDUINO-Faden

Beitrag von Matt »

Sehr spezielle Frage:

2 umstände ist geschuldet: einer kann NUR 1200 Baud, daran kann ich nicht ändern, und andere kann ich nur bis runter auf 2400 Baud einstellen.

Ich habe AVR so geschrieben, dass der in Empfängsmodus in Baud 2400 läuft, nur wenn der AVR sendet möchtet, wird es auf Baud 1200 umgestellt..
aber da tut senden. (keine Aufhängen, nur eben mit andere Baudrate tut es nichts)
Geht wirklich Baud-Rate Umstellung per schreiben des UBRR0 Registers in mitte des Code eigentlich nicht, oder ?
Benutzeravatar
ange12lo
Beiträge: 521
Registriert: Mo 12. Aug 2013, 22:22

Re: Der AVR-/ARDUINO-Faden

Beitrag von ange12lo »

Ich hole mal diesen Post hoch um keinen neuen zu erstellen.

Ich beschäftige mich aktuell mit den Arduino Pro Mini und Drucksensoren welche circa drei Jahre im Batteriebetrieb laufen sollte.
Nun Aktuell habe ich die Schaltung und das Programm so konstruiert das die Werte einmal in der Stunde übertragen werden, der rest der Zeit legt sich der Arduino, I2C Sensor, und das sende Modul schlafen.
Der Aktuelle Standby Verbrauch liegt bei 42µA mit einer 3.3V Speisung. Im Betrieb gönnt sich die Schaltung 40mA für circa 1-1.5 Sekunden.
Nun meine dilemma. Die Schaltung sollte Batteriebetrieben möglichst lange Laufen. Der Arduino könnte ich auch noch bis 1.8v runter betreiben die I2C Geräte wollen aber von 3-3.3V sehen.

Soll ich nun einen sparsamen Step-Up suchen wie z.b dieser Hier? https://www.digikey.ch/products/de/powe ... k=%20R-78S
Oder Lieber einen Low-Drop Linearregler ala TPS78233.

Beim Linearregler bräuchte ich dann aber wiederum vier Batterien was das ganze dann wieder unhandlicher macht.

hat jemand einen besseren Vorschlag?
Oder kennt einer einen Schaltregler mit einem geringeren Eigenverbrauch als der oben verlinkte?
Finde es Schade 240µW im Schaltregler zu verbraten.
Anse
Beiträge: 2278
Registriert: Mo 12. Aug 2013, 21:30
Wohnort: Bühl (Baden)

Re: Der AVR-/ARDUINO-Faden

Beitrag von Anse »

Normale Linearregler haben eine hohen Querstrom. Beim 87L05 sind es wenn ich mich richtig erinnere ca. 3,5mA.
Es gibt noch low quiescent current Regler. z.B. LM2936Z mit 15µA im Leerlauf.
Läuft der Arduino eigentlich auf 16MHz?
Benutzeravatar
ange12lo
Beiträge: 521
Registriert: Mo 12. Aug 2013, 22:22

Re: Der AVR-/ARDUINO-Faden

Beitrag von ange12lo »

Anse hat geschrieben: Läuft der Arduino eigentlich auf 16MHz?
Es ist die 8MHz 3.3V Version.

Als Linearregler hätte ich die TPS78233 Version gewählt, Die hat einen eigenverbrauch ohne Last von 1,3µA.
Ich wollte jedoch vermeiden vier Batterien zu nutzen.
Benutzeravatar
ferdimh
Beiträge: 9381
Registriert: Fr 16. Aug 2013, 15:19

Re: Der AVR-/ARDUINO-Faden

Beitrag von ferdimh »

Das sollte doch einwandfrei mit einer Lithium-Ionen-Zelle gehen.
45µA (42+Regler) * 3 Jahre sind gerade mal 1,2Ah.
Da bleibt eine einzelne 18650 (neu, vollgeladen) sicher über deutlich über 3,5V.
Wenn es AA-Format sein muss, müsste man dann wohl zwei parallel nehmen.
Dass man einen Akku hier nicht sinnvoll als Akku nutzt, halte ich bei den Preisen für verschmerzbar.
Benutzeravatar
ange12lo
Beiträge: 521
Registriert: Mo 12. Aug 2013, 22:22

Re: Der AVR-/ARDUINO-Faden

Beitrag von ange12lo »

ich würde ansonst normale Lithium Batterien Kaufen im AA format mit 3.6V habe jedoch keine entladekurve dazu gefunden, wann ist eine Lithium Batterie (nicht Akku) den wirklich leer?
Benutzeravatar
Bastelbruder
Beiträge: 11483
Registriert: Mi 14. Aug 2013, 18:28

Re: Der AVR-/ARDUINO-Faden

Beitrag von Bastelbruder »

Eine Lithium-Primärzelle ist leer (unter 1%) wenn die angegebene Leerlaufspannung unterschritten wird.
Entweder 3,0 V oder 3,6 V.
andreas6
Beiträge: 4149
Registriert: So 11. Aug 2013, 15:09

Re: Der AVR-/ARDUINO-Faden

Beitrag von andreas6 »

Per Spannungsmessung ist da kaum eine verlässliche Aussage zu bekommen. Bei Messen immer einen Lastwiderstand parallel schalten! An z.B. 100 Ohm zeigt sich sehr schnell der Unterschied zwischen benutzbar oder leer. Die leere Zelle hat fast die Nennspannung, aber einen hohen Innenwiderstand. Es gibt übrigens auch 1,5V-Li-Zellen, die fast am Ende der Kapazität unbelastet immer noch 1,7V zeigen.

MfG. Andreas
Benutzeravatar
ferdimh
Beiträge: 9381
Registriert: Fr 16. Aug 2013, 15:19

Re: Der AVR-/ARDUINO-Faden

Beitrag von ferdimh »

Wenn du die Anwendung gelesen hättest, wäre dieser Text hinfällig.
Weder 50µA noch 50mA sind für eine 2,5A-Zelle eine Li-Ion-Zelle eine Last von einer Intensität, dass man den Spannungseinbruch berücksichtigen müsste.
Bei Primärzellen kann das anders aussehen (die sind möglicherweise nur für Speichererhaltung gedacht), ich würde aber keine Primärzelle verwenden (weil Akkus nicht schlechter, nicht teurer und besser verfügbar sind).
Eine Google-Bildersuche nach "Li-Ion Entladekurve" gibt einem auch massig Bilder, wie das aussieht...
berlinerbaer
Beiträge: 1062
Registriert: Di 22. Aug 2017, 05:19
Wohnort: Berlin

Re: Der AVR-/ARDUINO-Faden

Beitrag von berlinerbaer »

Ansonsten kannst Du auch prismatische LiPo-Zellen aus dem Modellbaubereich nehmen.

5 Ah sind gar nicht mal so teuer:
https://hobbyking.com/de_de/turnigy-500 ... -cell.html

Vielleicht ist der Formfaktor fürs Gehäuse ja auch vorteilhafter.

Jedenfalls solltest Du damit Laufzeiten hinkriegen, bei denen dann die Akku-Kapazität wahrscheinlich nicht mehr der limitierende Faktor ist.
andreas6
Beiträge: 4149
Registriert: So 11. Aug 2013, 15:09

Re: Der AVR-/ARDUINO-Faden

Beitrag von andreas6 »

Bei Primärzellen kann das anders aussehen
Da sieht es definitiv anders aus. Nur auf Primärzellen bezog sich der Messhinweis.

MfG. Andreas
Till
Beiträge: 1162
Registriert: Di 13. Aug 2013, 16:00

Re: Der AVR-/ARDUINO-Faden

Beitrag von Till »

Moin Moin in die Runde.

Ich habe aktuell folgendes Problem bei dem ich nicht so recht weiter komme
da mir aktuell noch ein wenig das Verständnis für die ganze Programmierung fehlt.

Ich habe eine serielle Schnittstelle auf der ein Arduino mithorchen soll, diese enthält Daten
welche eine Waage an eine Anzeige sendet.

Diese Daten habe ich auch so weit mit dem Oskar sichtbar machen können, sie werden als ASCII übertragen.
So sieht das dann aus wenn einfach nur das Gewicht dort steht:

Bild->zoom


Es wird immer ein Byte übertragen, welches dann von CR abgeschlossen wird.
Jetzt soll der Arduino sobald folgendes auf der Schnittstelle empfangen wird einen Ausgang setzen:
Bild->zoom

Die abgebildeten Daten werden regelmäßig im Abstand von ca. 500-700ms gesendet,
Das W.OK steht dann auch etwa für 5 Sekunden dort.
Ansonsten kann es auch schon mal vorkommen das Warte oder Error gesendet wird,
dies soll allerdings ignoriert werden.

Leider werde ich aus den Befehlen für die serielle Schnittstelle nicht so richtig schlau,
vor allem nicht mit den verschiedenen Datentypen und dem Buffer.

Kann mir da von euch jemand ein bisschen Starthilfe geben?

Gruß Till.
Till
Beiträge: 1162
Registriert: Di 13. Aug 2013, 16:00

Re: Der AVR-/ARDUINO-Faden

Beitrag von Till »

.
Benutzeravatar
ange12lo
Beiträge: 521
Registriert: Mo 12. Aug 2013, 22:22

Re: Der AVR-/ARDUINO-Faden

Beitrag von ange12lo »

Bin nun seit einiger Zeit am entwickeln einer Schaltung die extrem Energie sparend ist.
Nun ich messe mehrmals pro stunde einen Wert über einen I2c Sensor, dann legt sich der Mega wieder schlaffen.
Aktuell läuft der I2c Sensor direkt am Mega und das ohne Pullup Wiedererstände.
Da die Messung mehrere Sekunden dauert und das mehrmals pro Stunde, wird mein Stromverbrauch durch die Pullup Wiederstände erheblich gesteigert.
Habe in diversen Foren gelesen das mindestens 2mA und noch besser 3mA fliessen sollte.
Das liegt aber bei meiner Anwendung mit einer AA Batterie und mindestens drei Jahre Laufzeit nicht drin.
Wer kann mir eine alternative nennen, oder was sind die Risiken wenn der Strom durch die Pullups um einiges kleiner ist?
Sir_Death
Beiträge: 3446
Registriert: Mo 11. Mai 2015, 22:36
Wohnort: südlich von Wien

Re: Der AVR-/ARDUINO-Faden

Beitrag von Sir_Death »

na wenn es jetzt ohne externe Pullups funktioniert, hast du wahrschienich die internen aktiviert. Warum willst du dann noch extra externe setzen? - Wer verzapft solchen Blödsinn?

EDIT: Risiko bei kleinen Pullups: Störanfälliger gegen Einstreuungen. Auf Platinen verwende ich - wo notwendig - üblicherweise (je nach Lagerstand) 10-20k an 5V --> ergibt zwischen 250 und 500µA - bisher keine Probleme.
Matt
Beiträge: 6084
Registriert: So 24. Aug 2014, 21:22

Re: Der AVR-/ARDUINO-Faden

Beitrag von Matt »

I²C Abschlusswiderstand ist üblichweise 4,7k , aber höhere Werte ist kein Problem, nur wenn du Geschwindigkeit davon verlangsamert (denn es ist Open Collector_Schaltung, da begrenzt Pullup ihre Anstiegsgeschwindigkeit.)

Prüfmal, ob Sensor auch mit kleinere Spannung klarkommt. (es gibt welcheres I²C Device der mit 2,7V läuft, spezifizert ! (AD7417 ))
Benutzeravatar
Weisskeinen
Beiträge: 3943
Registriert: Di 27. Aug 2013, 16:19

Re: Der AVR-/ARDUINO-Faden

Beitrag von Weisskeinen »

Wenn es denn schon externe Pull-up-Widerstände sein müssten, dann kann man die auch schaltbar machen. Besser für's Stromsparen wäre allerdings, die Messzeit zu verkürzen...
Sir_Death
Beiträge: 3446
Registriert: Mo 11. Mai 2015, 22:36
Wohnort: südlich von Wien

Re: Der AVR-/ARDUINO-Faden

Beitrag von Sir_Death »

Neues Thema zum Arduino: - Just for Information

Eigentlich würde ich es fast in Ärgernis der Woche einstellen, aber lieber hier, dann kann man das vielleicht mal finden / nachlesen.

Wie vor einigen Wochen im "fertiggestellte Projekte" berichtet, habe ich ja eine Modellbahnanlage gebaut, wo 10 Arduino Mega miteinander reden müssen, da ich soviele Portpins brauche.
Die Erkennung, wo sich gerade ein Zug befindet, funktioniert über eine in den Massepfad eingeschliffene Diode, an der der Mega mit seinen Analogpins die Spannung misst.
Leider litt diese Erkennung unter sporadischen ausfällen, bzw. Erkennungen von Zügen, wo keine waren.
Ärgernis der Woche deshalb, da ich inzwischen ca. 30-40 Stunden mit der Fehlersuche verbracht habe.

Fehlerursache war folgendes:
1.) damit die Diode sauber auf Masse liegt, wenn kein Zug da ist, gibt es parallel zur Diode einen hochohmigen Widerstand (100k) gegen Masse, sowie einen 100k als Überbrückung über den MOSFET. Deshalb so hochohmig, damit die Bahn mit der Messspannung sicher nicht losfährt.
2.) Habe ich vor Urzeiten mal gelernt, meine Programme nach dem "EVA"-Modell zu schreiben. (EVA = Eingabe Verarbeitung Ausgabe) sprich schön hintereinander, nicht durcheinander - sonst tut man sich meist beim erweitern des Programms sehr schwer.
3.) Deshalb stehen als erstes die "digitalRead" schön nacheinander, und dann die "analogRead" eins nach dem anderen.

Und dann sind die analog eingelesenen Werte nur noch Mist.
Ursache ist, dass der Mega - soweit ich das verstanden habe - zwischen den analogen Portpins den S/H-Kondensator (Sample and Hold) herumschaltet. Wenn dieser - so wie hier - aus einer hochohmigen Quelle gespeist wird, ist die erste Messung einfach Mist.

Abhilfe: entweder vor jeder analogen Messung ein "delay(1);" oder einfach das gleiche "analogRead" 2 x hintereinander ausführen. Schon geht der Mist.
Details auch nachzulesen hier: https://forum.arduino.cc/index.php?topic=69675.0

Ich hoffe, ich kann jemandem damit ein paar Stunden Fehlersuche ersparen.
Antworten