Der AVR-/ARDUINO-Faden

Der chaotische Hauptfaden

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

Benutzeravatar
Raider
Beiträge: 1121
Registriert: Fr 11. Jul 2014, 16:58
Wohnort: Ellerhoop

Re: Der AVR-/ARDUINO-Faden

Beitrag von Raider »

Moin,

ich brauche mal eure Hilfe, da ich nicht so oft mit Arduino /µCs arbeite:

Ich habe folgendes Problem. Ich bekomme alle paar Millisekunden einen Impuls(Pulsabstand variiert). Und den Pulsabstand will ich mit einem Faktor verändern, um dann ein neues Signal mit dem neuen Pulsabstand wieder weiterzugeben. Auf PIN 2 kommt das Signal rein, auf 10 soll es wieder raus.

Code: Alles auswählen

float korrektur = 1.5;
unsigned long letzter = 0;
int deltat = 0;

void setup() {
  pinMode(2, INPUT);
  pinMode(10, OUTPUT);
 attachInterrupt(digitalPinToInterrupt(2),zeit ,FALLING);
}
 
void loop() {
  digitalWrite(10, HIGH);
  delay(korrektur *deltat);
  digitalWrite(10, LOW);
  delay(5);
}

void zeit() {
deltat = millis() - letzter;
letzter = millis();
}
Leider funktioniert das Programm so ganz und gar nicht. Ich wollte das mit veränderten Zeiten und einem Taster + LED testen, aber hat überhaupt nicht funktioniert.

73 Ole
Matt
Beiträge: 6084
Registriert: So 24. Aug 2014, 21:22

Re: Der AVR-/ARDUINO-Faden

Beitrag von Matt »

kleine Geschenke von mir... C-Code für HPDL/DLO1414 Display.... , erstmal nur für 2x Module, gesamt 8 Stelle und noch gewissenmass verbesserungsdürftig

Code: Alles auswählen

///////////////////////// 1414 rountine Library ////////////////////////
// Autor: M.Korn 	Datum: 22.11.2016
////////////////////////////////////////////////////////////////////////
#include <avr/io.h>
#include <util/delay.h>
#include <stdint.h>

#define  	LED_DDR		DDRB	// Adresseleitung, Richtungsregister.	
#define  	LED_PORT	PORTB	// Adresseleitung
#define  	LED_DDR_DATA DDRD	// Datenleitung, Richtungsregister
#define		LED_DATA	PORTD	// Datenleitung
#define  	LED_WR		PD7		// Schreib-Ausgang /WRITE
#define		Stelle		8		// eine 1414 Module = 4 Stelle, hier 2x Module = 8 Stelle
#define		AdrBreite	0x07	// 0x07 = b00000111 = 3x Adresseleitung = 2hoch 3 = 8 Stelle


// Prototypen
void int1414 ();
void data1414 (char data);
void reset1414 ();
void set1414 (char data, char column);
void string1414(char string[]);

// initalisierte Werte
char string[];
int column1414 = 0;



// int1414 (); 				// beispielcode, zwingend fur korrekt Funktion, mit  Zuweisung von Port.
void int1414 (){
	LED_DDR = AdrBreite;		//Adresseleitung
	LED_DDR_DATA = 0xFF;		// Datenleitung
	int column1414=0;
	for(int i=0; i<Stelle; i++){
	LED_PORT = (column1414 & AdrBreite); // Adresse an Port setzen (3bit-Adresse, kaskadierbar durch Maske)
	LED_DATA &= ~ (1<<LED_WR); 	// Werte schreiben, /WRITE auf LOW setzen.
	LED_DATA = 0x20;           	// Leerzeichen an Port füttern
	LED_DATA |= (1<<LED_WR ); 	// schreiben beenden /WRITE auf HIGH setzen.
	column1414++; 				// Adressezähler
	}
	reset1414 ();
}



//	data1414 ( 0x30 & bcd[0]);   // beispiel-code, für Datensenden an 1414, inkrementale Stellenpostition.
	

void data1414 (char data ) {	// 1414 mit Daten speisen, inkremental
	LED_PORT = (column1414 & AdrBreite); // Adresse an Port setzen (3bit-Adresse, kaskadierbar durch Maske)
	LED_DATA &= ~(1<<LED_WR); 	// Werte schreiben, /WRITE auf LOW setzen.
	LED_DATA = (data & 0x7F);           	// Daten an Port füttern
	LED_DATA |= (1<<LED_WR ); 	// schreiben beenden /WRITE auf HIGH setzen.
	column1414--;				// Adressezähler
}


// reset1414 ();   // Beispielcode für zurücksetzen nach nutzung von Funktion "data1414"

void reset1414 () {
	column1414 = Stelle-1; 			// Adressezähler auf "NULL" setzen
}


 
//	set1414 (0x30 & bcd[1]); // beispielcode
 
void set1414 (char data, char column) { // gewünschte Stelle mit Daten füttern, nicht inkremental
	column1414 = column;			// Port mit gewünschte Adresse speisen.
	LED_PORT = (column1414 & AdrBreite); // Adresse an Port setzen (3bit-Adresse, kaskadierbar durch Maske)
	LED_DATA &= ~(1<<LED_WR);		// Werte schreiben, /WRITE auf LOW setzen.
	LED_DATA = (data & 0x7F);		// Daten an Port füttern
	LED_DATA |= (1<<LED_WR );		// schreiben beenden /WRITE auf HIGH setzen.
}



// string1414 ("hello") ;  // Beispielcode

void string1414(char string[]) {		// String  an 1414 schicken.
	for(int i=0; i<Stelle; i++) {		//for-Schleife
	data1414 (string[i]);				// Untenfunktion "data1414" mit Array-Daten füttern
	}									
	reset1414;							// Adressezähler zurücksetzen.
}
Benutzeravatar
Daniel
Beiträge: 859
Registriert: Mi 14. Aug 2013, 21:43
Wohnort: NRW

Re: Der AVR-/ARDUINO-Faden

Beitrag von Daniel »

Hallo,

wieder einmal fehlt es mir an Masse.

Nach dem Kompilieren ... das.



avr-g++: error: missing filename after '-o'

exit status 1

/*
LiquidCrystal Library - Hello World

Demonstrates the use a 16x2 LCD display. The LiquidCrystal
library works with all LCD displays that are compatible with the
Hitachi HD44780 driver. There are many of them out there, and you
can usually tell them by the 16-pin interface.

This sketch prints "Hello World!" to the LCD
and shows the time.

The circuit:
* LCD RS pin to digital pin 12
* LCD Enable pin to digital pin 11
* LCD D4 pin to digital pin 5
* LCD D5 pin to digital pin 4
* LCD D6 pin to digital pin 3
* LCD D7 pin to digital pin 2
* LCD R/W pin to ground
* LCD VSS pin to ground
* LCD VCC pin to 5V
* 10K resistor:
* ends to +5V and ground
* wiper to LCD VO pin (pin 3)

Library originally added 18 Apr 2008
by David A. Mellis
library modified 5 Jul 2009
by Limor Fried (http://www.ladyada.net)
example added 9 Jul 2009
by Tom Igoe
modified 22 Nov 2010
by Tom Igoe

This example code is in the public domain.

http://www.arduino.cc/en/Tutorial/LiquidCrystal
*/

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("hello, world!");
}

void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print(millis() / 1000);
}


Danke und Gruß Daniel
Matt
Beiträge: 6084
Registriert: So 24. Aug 2014, 21:22

Re: Der AVR-/ARDUINO-Faden

Beitrag von Matt »

Code sieht völlig für Arduino aus, wenn ich ihre Pinbelegung ansehen.. Ich benutze Arduino nicht, aber ihre Platine ist sehr willkommend bei mir. (wo gibt billige Atmega328 mit ganze Teile drum drauf)

https://forum.arduino.cc/index.php?topic=385234.0
Hier schreibt, dass IDE putt ist, Update/Neuinstallierung auf neuere Version löst Problem, ohne den genauerer gelesen zu habe.
Benutzeravatar
xoexlepox
Beiträge: 4814
Registriert: So 11. Aug 2013, 19:28
Wohnort: So etwa in der Mitte

Re: Der AVR-/ARDUINO-Faden

Beitrag von xoexlepox »

Daniel hat geschrieben:avr-g++: error: missing filename after '-o'
Ich habe den Verdacht, daß diese Fehlermeldung eher auf einen falsche Befehlszeile, als auf einen fehlerhaften Quellcode hinweist ;) Wie sah denn der Compileraufruf aus? Kann es sein, daß kein Dateiname für das "Ergebnis" angegeben ist?
Benutzeravatar
Daniel
Beiträge: 859
Registriert: Mi 14. Aug 2013, 21:43
Wohnort: NRW

Re: Der AVR-/ARDUINO-Faden

Beitrag von Daniel »

Hallo ich kriege das nicht hin, hier die Fehlermeldung komplett.

Arduino: 1.6.6 (Windows 7), Board: "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

avr-g++: error: missing filename after '-o'

exit status 1
Fehler beim Kompilieren.
Ungültige Bibliothek C:\Users\quinta\Documents\Arduino\libraries\Bridge in C:\Users\quinta\Documents\Arduino\libraries\Bridge gefunden
Ungültige Bibliothek C:\Users\quinta\Documents\Arduino\libraries\Bridge in C:\Users\quinta\Documents\Arduino\libraries\Bridge gefunden

Dieser Report hätte mehr Informationen mit
"Ausführliche Ausgabe während der Kompilierung"
aktiviert in Datei > Einstellungen.

Hallo,

ich habe wahrscheinlich ein Problem mit allen drei Arduino,

Wie kann ich diesen wieder den aktuellen Treiber einimpfen???

Ich bin da absolut neben der Spur.
Danke und Gruß
Zuletzt geändert von Daniel am Mi 28. Dez 2016, 11:26, insgesamt 1-mal geändert.
Benutzeravatar
xoexlepox
Beiträge: 4814
Registriert: So 11. Aug 2013, 19:28
Wohnort: So etwa in der Mitte

Re: Der AVR-/ARDUINO-Faden

Beitrag von xoexlepox »

Daniel hat geschrieben:Fehler beim Kompilieren.
Anscheinend arbeitest du mit einer IDE, die "auf Klick" Befehle an eine Shell oder andere Programme absetzt, und der (so aufgerufene) eigentliche Compiler beklagt sich darüber, daß ihm ein Parameter in der Befehlszeile fehlt. Hast du mit dieser IDE schon irgend etwas kompiliert bekommen? Schau' dir mal die Konfiguration (insbesondere die Pfade für verschiedene Dateien) deiner IDE genauer an, da scheint mir etwas zu fehlen... Sorry, aber "here no M$, Linux only...", daher kann ich dir nur mitteilen, daß der Compiler m.E. darüber meutert, daß er keine Info darüber bekommt, wo er sein Kompilat hin schreiben soll -> Ggf. fehlt da ein Pfad in der Konfiguration.
Name vergessen
Beiträge: 3261
Registriert: Mo 12. Aug 2013, 19:47

Re: Der AVR-/ARDUINO-Faden

Beitrag von Name vergessen »

Je nach IDE (Anjuta z.B.) kann es auch nötig sein, nach dem Entfernen / Anlegen / Importieren zusätzlicher Bibliotheken oder Files das Projekt / Makefile vollständig zu "bereinigen" und neu zu erstellen. Ansonsten gibt es solche merkwürdige Fehler.
Benutzeravatar
Daniel
Beiträge: 859
Registriert: Mi 14. Aug 2013, 21:43
Wohnort: NRW

Re: Der AVR-/ARDUINO-Faden

Beitrag von Daniel »

Danke, nur bin damit überfordert und hätte paar Hinweise.
Danke und Gruß Daniel
Matt
Beiträge: 6084
Registriert: So 24. Aug 2014, 21:22

Re: Der AVR-/ARDUINO-Faden

Beitrag von Matt »

ne Frage über Thema Interrupt.

Ist meine Annahme korrekt, dass beim Comparate Timer Clear Match, beim überstimmende Werte sofort Timer auf Null gesetzt wird, vor Start des Interrupt rountine Service ?
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 »

Jo.
Der Compare resettet den Timer und setzt das IRQ Flag.
Der CPU kern bekommt mit, dass das IRQ Flag gesetzt ist und springt zur IRQ Routine.
-> Timer schon längst resettet bei Ausführung der IRQ Routine
Matt
Beiträge: 6084
Registriert: So 24. Aug 2014, 21:22

Re: Der AVR-/ARDUINO-Faden

Beitrag von Matt »

Kopfklatsch, stimmt .. dass der Flag in Timer-Interrupt-Register (TIFR) auslösend für Interruptrountine ist. Da ist schon längst Timer auf 0 resettet.
Aber egal, danke für Betätigung und Denkanstoss .
Benutzeravatar
Toddybaer
Beiträge: 4704
Registriert: Sa 11. Jun 2016, 13:48
Wohnort: Hemmoor

Arduino Erste Schritte, einfache Tips

Beitrag von Toddybaer »

Hallo,

da ich ja nun etwas mit Mokrocontrollern rumbastel möchte und ich mir nicht gleich mit allen Bauteilen eindecken kann und mir meinen kleinen Arduino Micro auch nicht gleich zerschießen möchte....

Hat hier jemand Tips´was man unbedingt braucht für den Anfang
Was kann ich tun gegen grobe Fehler. Schutzbeschaltung für Verpolung Überspannung, zu viel Strom??

Was ich habe.... schon eine kleine Sammlung diverser Wiederstände, einige LED´s, Taster, Schalter
Bausatz Anzeigeeinheit 6-fach für Low/high (5V)
Bausatz Signalausgabeeinheit 4 Bit eigentlich das gleiche wie oben nur mit 4 LED Der genaue Unterschied erschließt sich mir gerade nicht, vermutlich für unterschiedliche Ströme
Arduino Micro + Handbuch
Arduino Handbuch PDF

Billige Lötstation, Multimeter, großes Brett mit PC Netzteil, wo ich diverse Spannungen auf Bananenstecker herausgeführt hab.

Was hab ich bis jetzt gemacht? Bausätze zusammengelötet (ich brauch unbedingt besseres Licht) man wie lange hab ich schon keine Platinen mehr verlötet
Den Arduino die LED blinken lassen, und das Blink programm zu einem SOS Blinker umgebastelt.
Achja, und das große Brett aus der Garage ausgegraben
Benutzeravatar
Geistesblitz
Beiträge: 1934
Registriert: Di 5. Nov 2013, 17:53
Wohnort: Dresden

Re: Arduino Erste Schritte, einfache Tips

Beitrag von Geistesblitz »

Ich finde diese Standard-Zeichendisplays sehr praktisch zum debuggen, da kann man sich dann beim Laufen Werte anzeigen lassen. Mit ein bisschen Getrickse geht sowas auch mit LEDs, aber so ein Display ist weniger umständlich und leichter zu deuten. Bei meiner letzten Chinabestellung hab ich mir auch einen Haufen solcher Experimentierkabel geholt, von allen Sorten (Male-to-Male, Male-to-Female und Female-to-Female), die braucht man auch irgendwie ständig. Ein ausreichend großes Breadboard hast du? Ich hab eins mit zwei Bananenbuchsen drin, da kann man dann sein umgebautes PC-Netzteil ganz einfach anstöpseln. Zwischen dem Controllerboard und dem Breadboard kommen dann die Experimantierkabel zum Einsatz. Die 5V schließ ich meist schon gar nicht mehr extra an, die lass ich einfach vom USB kommen. Ansonsten sind Trimmpotis auch immer mal ganz praktisch, wenn man mal irgendwie Analogwerte braucht, lassen sich ja einfach über den integrierten ADC auswerten.
Benutzeravatar
Toddybaer
Beiträge: 4704
Registriert: Sa 11. Jun 2016, 13:48
Wohnort: Hemmoor

Re: Arduino Erste Schritte, einfache Tips

Beitrag von Toddybaer »

Breadboard steht schon auf der will haben.
Ansonsten nur das gang kleine, etwas größer wie der Miro.

Ansonsten hab ich das große Brett zu mdraufnageln, da kann ich meine Bausätze auch drauf spaxen

Was für Verbindungskabel meinst du? Ich hätte für das Breadboard einfach 0,6 oder 0,8 Telefonleitung genommen

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

Re: Arduino Erste Schritte, einfache Tips

Beitrag von Geistesblitz »

Nimm lieber kein zu kleines Breadboard, wenn man mal mehrere ICs braucht (die normalerweise über dem mittleren Steg eingesteckt werden) kann der Platz schnell eng werden. Ich hab so ein ähnliches, allerdings wäre eins mit einem weiteren Bananenstecker praktischer:
Bild
Da muss man aber manchmal aufpassen, die Versorgungsleisten gehen bei den längeren Boards gerne mal nicht durch, sondern sind in der Mitte geteilt. Entweder man steckt da Drahtbrücken rein oder man lötet die innen zusammen.

Es kann auch nicht schaden, eins als Ersatz zu haben, dann braucht man bei parallelen Projekten nicht immer alles herunterreißen. Ich hab bisher auch nur die billigen Breadboards, reichen eigentlich völlig. Gibt die auch in ganz schön teuer, seh da aber irgendwie den Sinn nicht. Gut, die leiern bestimmt nicht so schnell aus, aber so viel mach ich damit auch nicht. Wenn ich etwas aufgebaut hab, was funktioniert und was ich noch öfter brauchen werd, wirds eh auf Lochraster permanent nachgebaut.

Ich mein solche Kabel, das hier ist sogar ein ziemlich günstiges Angebot gleich aus Deutschland:
http://www.ebay.de/itm/3Pcs-Dupont-Drah ... c7A7LLaL2Q

Am besten gleich die 20cm-Version nehmen (oder beide). Die Kabel kann man einfach vom Strang als einzelne abziehen. Das mit der Telefonleitung geht auch, allerdings nur als Male-to-Male, für die Buchsen müsste man sich erst was einfallen lassen. Für Verbindungen auf dem Steckbrett hab ich aber auch Kabelstückchen in verschiedenen Längen und kleine Drahtbrücken (aus abgekniffenen Bauteilbeinchen :D)
Benutzeravatar
Geistesblitz
Beiträge: 1934
Registriert: Di 5. Nov 2013, 17:53
Wohnort: Dresden

Re: Arduino Erste Schritte, einfache Tips

Beitrag von Geistesblitz »

Ich lad als Beispiel einfach mal das hoch, was ich gerade hier aufm Tisch kliegen hab. Projekt: Tester für Schrittmotoren. Da sieht man schonmal die meisten genannten Sachen im Einsatz.
2017-01-15 20.42.28.jpg
Benutzeravatar
topmech
Beiträge: 1442
Registriert: Sa 28. Jun 2014, 18:04
Wohnort: Luzern

Re: Arduino Erste Schritte, einfache Tips

Beitrag von topmech »

Toddybaer hat geschrieben:Breadboard steht schon auf der will haben.
Glaube eines ist bei dir im Paket gelandet. In der 70er Jahre Trendfarbe orange :lol:
Benutzeravatar
Toddybaer
Beiträge: 4704
Registriert: Sa 11. Jun 2016, 13:48
Wohnort: Hemmoor

Re: Arduino Erste Schritte, einfache Tips

Beitrag von Toddybaer »

Auf das Paket bin ich mal gespannt.

Orage war vor kurzem wieder bei Tupperware im Kommen... :?
Benutzeravatar
topmech
Beiträge: 1442
Registriert: Sa 28. Jun 2014, 18:04
Wohnort: Luzern

Re: Arduino Erste Schritte, einfache Tips

Beitrag von topmech »

Toddybaer hat geschrieben:Auf das Paket bin ich mal gespannt.
Völlig zurecht :D Gerade bei Leuten, die viel im Forum schreiben, kann man viel präzisere Aale mitschicken.
Benutzeravatar
Toddybaer
Beiträge: 4704
Registriert: Sa 11. Jun 2016, 13:48
Wohnort: Hemmoor

Re: Arduino Erste Schritte, einfache Tips

Beitrag von Toddybaer »

So, es geht vorran.

Onboard LED blinken geht
Programm umgeschrieben, kann jetzt auch SOS blinken

Heute versucht LCD anzuklemmen.
Der Nano und der Micro haben unterschiedliche PIN´s !!
Externe Spannungsversorgung über PC Netzteil. Im Buch steht zwar das man den nicht mit weniger als 7V versogen soll, weil bei Spannungen zwischen 5 und 7 V die Funktion nicht sicher gewährleistet werden kann. Läuft mit 5 V aber scheinbar ganz gut, hat den Vorteil das ich nur eine Spannungsquelle benötige.
Zur Not hätte das Netzteil auch noch 7 und 12 V zur Verfügung gehabt.

Hab dann mal alle 4 vorhandenen LCD durchprobiert, funktionieren alle, eines hat keine Hintergrundbeleuchtung. Mir hat sich eine Quelle für diese LCD´s aufgetan. UNd praktischer weise gleich mit Gehäuseteil dran.

Ja... und nun ?
Vorschläge für erste Schaltungen und Programmierungen? Bis jetzt hab ich ja nur fertige Programme aufgespielt
Benutzeravatar
Geistesblitz
Beiträge: 1934
Registriert: Di 5. Nov 2013, 17:53
Wohnort: Dresden

Re: Arduino Erste Schritte, einfache Tips

Beitrag von Geistesblitz »

Die Projekte sollten von alleine kommen, vielleicht erstmal nur ein paar Spielereien (zB. ist es ganz witzig, eine einfache Menüführung für das LCD zu programmieren, mit ein paar Tastern zur Navigation) und sonst immer mal umgucken, ob einem für irgendwas vielleicht mal eine Idee kommt. Manchmal kommen eiem auch Ideen, wenn man sich Beispielprogramme genauer anguckt und man versucht, diese zu verbessern oder auszubauen.

Wenns wirklich genau 5V sind kannst auch den VIN-Pin umgehen und die direkt auf den +5V-Pin geben, brauchst dann ja keinen Spannungsregler.
Benutzeravatar
Toddybaer
Beiträge: 4704
Registriert: Sa 11. Jun 2016, 13:48
Wohnort: Hemmoor

7 Segmentanzeige mit integriertem Kontroller Anschluss??

Beitrag von Toddybaer »

Hallo,

habe hier eine 4 Stellige, 7 Segmentanzeige und würde die gerne an mit dem Arduiono ansteuern.
Auf der Segmentanzeige befindet sich ein Kontroller von motorola ( 14489BDW ) Angeschlossen wird das ganze über ein 10 pol. Flachbandkabel, das hab ich ja bereits auf die Platine bekommen.
Nur wie klemm ich das jetzt an den Arduino an und mit welcher Libery muss ich den füttern, damit der da Zahlen anzeigen kann?

Scheinbar sind nicht alle Leitungen des Flachbandkabels belegt. Ein Pin ist mit + bezeichnet, da würd ich jetzt einmal plus anklemmen. Im Datenblatt des Kontrollers stand was von nicht inbegriffenen Resistor, also würde ich generell ersteinmal einen mit davor schalten.
Und das eine Leitung die Datenleitung sein muss.
Nur.... welche Leitung? und was für Daten müssen da dran???

Ansonsten steht noch auf der Platine
FASE
CF-94V-0 CS269A

Hat da jemand eine Idee??
Benutzeravatar
BMS
Beiträge: 220
Registriert: Di 13. Aug 2013, 10:56

Re: 7 Segmentanzeige mit integriertem Kontroller Anschluss??

Beitrag von BMS »

Hallo,
erste Anlaufstelle ist wie immer das Datenblatt. Hier das von dem MC14489B:

http://pdf.datasheetcatalog.com/datashe ... 14489B.pdf

Um die Pinbelegung des Kabels herauszufinden kann man mit dem Durchgangsprüfer testen, welche Pins des ICs am Flachbandkabel herauskommen.

Viele Grüße,
Bernhard

Nachtrag:
Bei dem Treiber kann man den Ausgangsstrom über einen einzelnen Widerstand festlegen.

Das Interface ist ab Seite 6 beschrieben. Im Grunde genommen ist das ein SPI.
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,

was ist ein SPI??

das diese Datenblätter auch immer auf Englisch sein müssen :roll:
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: 11482
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: 11482
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.
Antworten