Der AVR-/ARDUINO-Faden
Moderatoren: Heaterman, Finger, Sven, TDI, Marsupilami72, duese
Re: Der AVR-/ARDUINO-Faden
Danke, ich werde das mal testen.
Was ist nicht verstehe:
Ich habe einen funktionierenden mit meinem MKII ausgelesen und die beiden Files (Flash / EEPROM) 1:1 auf die reparierten gebrant.
Da müsste doch der funktionierende Bootloader gleich mit drauf sein?
Was ist nicht verstehe:
Ich habe einen funktionierenden mit meinem MKII ausgelesen und die beiden Files (Flash / EEPROM) 1:1 auf die reparierten gebrant.
Da müsste doch der funktionierende Bootloader gleich mit drauf sein?
Re: Der AVR-/ARDUINO-Faden
Tatsache!
Ich habe nun das Hex-File über ISP gebrannt.
Danach kann ich mein Testfile (Blink LED) über die adruino Oberfläche ganz normal hochladen.
Dankeschön!
Ich habe nun das Hex-File über ISP gebrannt.
Danach kann ich mein Testfile (Blink LED) über die adruino Oberfläche ganz normal hochladen.
Dankeschön!
-
- Beiträge: 1663
- Registriert: So 11. Aug 2013, 13:55
Re: Der AVR-/ARDUINO-Faden
Vielleicht kann ein Wissender nochmal die Fuse mit der Bootsektorgröße prüfen. Nicht dass da was falsch ist und einem später gegens Bein läuft.
Re: Der AVR-/ARDUINO-Faden
Ich habe gerade die Einfachheit von micropython und die Power des Raspi Pico zusammen entdeckt
Ist vielleicht ein alter Hut für viele von euch, aber wer wie ich noch mit atmega8 und Co. rumdoktert und mit c nie warm wurde: probiert den mal aus
Der Chip hat 2 Kerne, die von micropython unterstützt werden. Ich kann ganz faul 2 threads parallel laufen lassen. Einer sammelt die Eingänge ein und der andere wertet und gibt aus. Ist vielleicht nicht die effizienteste Vorgehensweise, aber die Hardware ist offenbar schnell genug um das zu kompensieren. Und ganz ohne Gehirnakrobatik
Ist vielleicht ein alter Hut für viele von euch, aber wer wie ich noch mit atmega8 und Co. rumdoktert und mit c nie warm wurde: probiert den mal aus
Der Chip hat 2 Kerne, die von micropython unterstützt werden. Ich kann ganz faul 2 threads parallel laufen lassen. Einer sammelt die Eingänge ein und der andere wertet und gibt aus. Ist vielleicht nicht die effizienteste Vorgehensweise, aber die Hardware ist offenbar schnell genug um das zu kompensieren. Und ganz ohne Gehirnakrobatik
Re: Der AVR-/ARDUINO-Faden
kann xanakind ja nur selber. die default fuses stehen in der boards.txt und sind gleich für neu/alt.bastelheini hat geschrieben: ↑So 14. Nov 2021, 21:27 Vielleicht kann ein Wissender nochmal die Fuse mit der Bootsektorgröße prüfen. Nicht dass da was falsch ist und einem später gegens Bein läuft.
Re: Der AVR-/ARDUINO-Faden
Ich habe mir einen Tiny 2040 von Pimoroni zum Probieren geholt:
Funktioniert auf Anhieb mit der identischen Micropython-Firmware vom Raspi Pico
Er ist schön klein und hat einen USB-C Stecker. Dafür kostet er auch das Doppelte vom Raspi
Ich habe noch einen Adafruit QT Py 2040 hier, aber noch nicht ausprobiert:
Funktioniert auf Anhieb mit der identischen Micropython-Firmware vom Raspi Pico
Er ist schön klein und hat einen USB-C Stecker. Dafür kostet er auch das Doppelte vom Raspi
Ich habe noch einen Adafruit QT Py 2040 hier, aber noch nicht ausprobiert:
Re: Der AVR-/ARDUINO-Faden
Arduino Spezialist Gesucht
Hallo ich suche jemand der mir Merlin auf ein MKS Base V 1.4 Board auf spielt
Es ist für ein 3D Drucker
Hallo ich suche jemand der mir Merlin auf ein MKS Base V 1.4 Board auf spielt
Es ist für ein 3D Drucker
Re: Der AVR-/ARDUINO-Faden
Also ich verstehe das mit Millis immer noch nicht.
Wir haben ein Programm, was mit Delays arbeitet und das soll auf millis umgeschrieben werden.
Das Ausgangsprogramm ist das:
#define ICPin 3 // Pin Einlesen IC
#define RelaisPin 5 // Pin Schalten Relais
void setup() {
// put your setup code here, to run once:
pinMode(ICPin,INPUT);
pinMode(RelaisPin,OUTPUT);
digitalWrite (RelaisPin, LOW);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite (RelaisPin, HIGH);
if (digitalRead(ICPin)==HIGH)
{
delay (650); //Wartezeit bis Relais abgeschaltet wird
digitalWrite (RelaisPin, LOW);
delay (20000);
}
}
Also kein Hexenwerk.
Wir werten eine positive Flanke eines ICs aus, setzen ein Relais am Anfang auf AN, dann wenn das Signal
kommt, wird das Relais nach 650 ms abgeschaltet und nach 20 Sekunden wieder an.
So funktioniert das schon mal, aber da der Arduino später noch was parallel machen soll, sollen die Zeiten
durch millis ersetzt werden.
Ich verstehe nicht mal im Ansatz, wie dasmit millis geht, daher bringen Tipps wie "Lies da und da." nichts.
Wir haben ein Programm, was mit Delays arbeitet und das soll auf millis umgeschrieben werden.
Das Ausgangsprogramm ist das:
#define ICPin 3 // Pin Einlesen IC
#define RelaisPin 5 // Pin Schalten Relais
void setup() {
// put your setup code here, to run once:
pinMode(ICPin,INPUT);
pinMode(RelaisPin,OUTPUT);
digitalWrite (RelaisPin, LOW);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite (RelaisPin, HIGH);
if (digitalRead(ICPin)==HIGH)
{
delay (650); //Wartezeit bis Relais abgeschaltet wird
digitalWrite (RelaisPin, LOW);
delay (20000);
}
}
Also kein Hexenwerk.
Wir werten eine positive Flanke eines ICs aus, setzen ein Relais am Anfang auf AN, dann wenn das Signal
kommt, wird das Relais nach 650 ms abgeschaltet und nach 20 Sekunden wieder an.
So funktioniert das schon mal, aber da der Arduino später noch was parallel machen soll, sollen die Zeiten
durch millis ersetzt werden.
Ich verstehe nicht mal im Ansatz, wie dasmit millis geht, daher bringen Tipps wie "Lies da und da." nichts.
- Später Gast
- Beiträge: 1706
- Registriert: Di 5. Apr 2016, 22:03
- Wohnort: Karlsruhe
- Kontaktdaten:
Re: Der AVR-/ARDUINO-Faden
millis() gibt die Millisekunden seit boot an und ist eine unsigned int. Wenn du die Zeit messen willst speicherst du zum Startpunkt den Wert von millis() in einer globalen unsigned int.
millis() läuft davon unberührt weiter. Wenn du jetzt die Differenz der beiden Werte bildest hast du die seit Startpunkt abgelaufene Zeit in Millisekunden.
Das packst du dann in einen vergleich.
Also zu Beginn
Startpunkt =millis();
Und dann if(millis()-Startpunkt>1000){ do something;}
Dann musst du noch dafür sorgen, dass die erste Zeile nicht dauernd aufgerufen wird, sonst sind Startpunkt und millis ja immer identisch.
millis() läuft davon unberührt weiter. Wenn du jetzt die Differenz der beiden Werte bildest hast du die seit Startpunkt abgelaufene Zeit in Millisekunden.
Das packst du dann in einen vergleich.
Also zu Beginn
Startpunkt =millis();
Und dann if(millis()-Startpunkt>1000){ do something;}
Dann musst du noch dafür sorgen, dass die erste Zeile nicht dauernd aufgerufen wird, sonst sind Startpunkt und millis ja immer identisch.
Re: Der AVR-/ARDUINO-Faden
Das macht nichts. Deswegen wurde es ja hier im Thread schon durchgekaut
Ich hatte da ein Vorschlag gemacht viewtopic.php?p=354321#p354321 und prompt wurde ich auf Fehler in meiner Logik hingewiesen (siehe den Beitrag drunter, danke nochmal an dieser Stelle )
Re: Der AVR-/ARDUINO-Faden
Ich hatte damals das RAMPS 1.4 mit Marlin bespielt, das sollte kompatibel sein. Aufspielen war das kleinste Problem: Arduino auf dem PC installieren, USB-Kabel dran, ATMega2560 auswählen, Marlin-Projekt öffnen, Upload, fertig.
Für mich war es wie die Pest Marlin an meinen Drucker anzupassen ohne dass es dabei wegen falschen Anpassungen unkompilierbar wird...
Hast du schon die richtige Marlin Version für deinen Drucker?
Re: Der AVR-/ARDUINO-Faden
Sorry fürs Klugscheißen:
unsigned long bitte, damit es der selbe Datentyp ist wie die Funktion millis() zurückgibt und beide gleichermaßen überlaufen. Sonst gibt es Probleme nach ein paar Wochen Betrieb.
Re: Der AVR-/ARDUINO-Faden
Unsigned int geht auch, solange keine Zeitspanne länger als unsigned int ist.
Nur vorsichtig muss man sein... uint kann je nach Architektur unterschiedliche Größen haben. Zwischen 2 und 8 bzw. 16 Byte. Ganz sicher schreibt man uint32_t.
Grüße Jan
Nur vorsichtig muss man sein... uint kann je nach Architektur unterschiedliche Größen haben. Zwischen 2 und 8 bzw. 16 Byte. Ganz sicher schreibt man uint32_t.
Grüße Jan
Re: Der AVR-/ARDUINO-Faden
Das ist blödfug.
Wenn man eine Zeit präzise haben will und nebenbei anderes Zeug machen will nimmt man einen Timer und einen Interrupt.
- Später Gast
- Beiträge: 1706
- Registriert: Di 5. Apr 2016, 22:03
- Wohnort: Karlsruhe
- Kontaktdaten:
Re: Der AVR-/ARDUINO-Faden
Nee ich sorry, du danke!
Bin grad etwas neben der Spur und schreib vom Schmierfon, hab natürlich unsigned long gemeint.
Wenn man zum Platzsparen ne kleinere Variable nehmen will sollte man schon sicherstellen, dass die nicht überläuft, sonst Bug, das hätte ich dann dazugeschrieben.
Re: Der AVR-/ARDUINO-Faden
Unsigned long macht nach 50 Tagen einen Überlauf.
Wenn der Aparillo dann im richtig/falschen Moment die millis nimmt, bleibt das Relais sehr lange an, oder das Programm bleibt 50 Tage in der Warteschleife.
Wenn der Aparillo dann im richtig/falschen Moment die millis nimmt, bleibt das Relais sehr lange an, oder das Programm bleibt 50 Tage in der Warteschleife.
- Später Gast
- Beiträge: 1706
- Registriert: Di 5. Apr 2016, 22:03
- Wohnort: Karlsruhe
- Kontaktdaten:
Re: Der AVR-/ARDUINO-Faden
nope.
Durch das bilden der Differenz passiert eben das nicht. Dann läuft das Ergebnis auch über, Ergebnis ist das Gleiche wie ohne Überlauf.
Re: Der AVR-/ARDUINO-Faden
Ich tu mir das nicht mehr an.
Für 4,50€ bekomme ich einen Raspberry Pi Pico.
Die C++ Jünger bekommen jetzt vermutlich Schnappatmung und grüne und gelbe Punkte im Gesicht.
Ich programmiere seit über 40 Jahren! Habe aber nie professionell in der Oberliga gespielt, weil ich beruflich da recht schnell raus war.
Ich finde es aber sensationell, was heute mit Micropython geht.
Gerade für Anfänger toll. Viele wollen ja gar keine Top-Programmierer werden, sondern blos ein paar kleine Sachen zum Laufen bringen.
In Thonny kann man jeden Befehl sofort ausprobieren, das übertragen des Programmes geht in Windeseile.
Der Pico spielt den Arduino mühelos in allen Disziplinen an die Wand!
Exakte Zeiten z.B.:
(Auszug aus dem Buch "Messen Steuern und Regeln mit Micropython und RP2040" von H.J. Berndt, absolut empfehlenswert!)
Das stimmt auf die Millisekunde genau!
Man kann den Vergleich auch mit der Funktion time.ticks_diff() machen, dann werden Überläufe automatisch berücksichtigt.
Um Variablendefinitionen braucht man sich auch nicht zu kümmern.
Es gibt auch time.ticks_us und sogar time.ticks_ns !
Messwerte in Datei schreiben, Displays, Sensoren und und und, alles total pillepalle.
Mir kommt es nur noch drauf an, dass es schnell geht und problemlos funktioniert.
Ich bin von Micropython begeistert!
Für 4,50€ bekomme ich einen Raspberry Pi Pico.
Die C++ Jünger bekommen jetzt vermutlich Schnappatmung und grüne und gelbe Punkte im Gesicht.
Ich programmiere seit über 40 Jahren! Habe aber nie professionell in der Oberliga gespielt, weil ich beruflich da recht schnell raus war.
Ich finde es aber sensationell, was heute mit Micropython geht.
Gerade für Anfänger toll. Viele wollen ja gar keine Top-Programmierer werden, sondern blos ein paar kleine Sachen zum Laufen bringen.
In Thonny kann man jeden Befehl sofort ausprobieren, das übertragen des Programmes geht in Windeseile.
Der Pico spielt den Arduino mühelos in allen Disziplinen an die Wand!
Exakte Zeiten z.B.:
(Auszug aus dem Buch "Messen Steuern und Regeln mit Micropython und RP2040" von H.J. Berndt, absolut empfehlenswert!)
Das stimmt auf die Millisekunde genau!
Man kann den Vergleich auch mit der Funktion time.ticks_diff() machen, dann werden Überläufe automatisch berücksichtigt.
Um Variablendefinitionen braucht man sich auch nicht zu kümmern.
Es gibt auch time.ticks_us und sogar time.ticks_ns !
Messwerte in Datei schreiben, Displays, Sensoren und und und, alles total pillepalle.
Mir kommt es nur noch drauf an, dass es schnell geht und problemlos funktioniert.
Ich bin von Micropython begeistert!
Re: Der AVR-/ARDUINO-Faden
Kleines Beispiel:
Ich habe 2 Stromzähler mit S0 Ausgang. Einen an der Solaranlage und einen im Zugang zum Haus.
Also Solarertrag und Verbrauch.
Ich will eine 2/4/6 kW Heizpatrone in die Heizung einbauen und den Überschuß in die Heizung pfeffern.
Das muss natürlich sauber gesteuert werden.
Also das S0 Signal (1 Impuls / wh) auswerten. In der Periodendauer steckt die Leistung.
Das writer-Modul ist nur wegen der großen Schriftart drin. Ich kann die Fuzzelschrift sonst nicht lesen.
Die 0 und die 10000 in der print-Ausgabe sind dazu da, die Autoskalierung des Kennlinienschreibers in Thonny auszubremsen.
Die 30ms Pause ist nur drin, damit man die LED sehen kann (S0-Impuls-Kontrolle)
Der Pico macht in der Hauptschleife genau nichts (immer nur 100S pennen).
Die Gaudi ist Interruptgesteuert.
Mach das Alles mal auf die Schnelle mit nem Arduino ...
So sieht das dann aus:
Ich habe 2 Stromzähler mit S0 Ausgang. Einen an der Solaranlage und einen im Zugang zum Haus.
Also Solarertrag und Verbrauch.
Ich will eine 2/4/6 kW Heizpatrone in die Heizung einbauen und den Überschuß in die Heizung pfeffern.
Das muss natürlich sauber gesteuert werden.
Also das S0 Signal (1 Impuls / wh) auswerten. In der Periodendauer steckt die Leistung.
Das writer-Modul ist nur wegen der großen Schriftart drin. Ich kann die Fuzzelschrift sonst nicht lesen.
Die 0 und die 10000 in der print-Ausgabe sind dazu da, die Autoskalierung des Kennlinienschreibers in Thonny auszubremsen.
Die 30ms Pause ist nur drin, damit man die LED sehen kann (S0-Impuls-Kontrolle)
Der Pico macht in der Hauptschleife genau nichts (immer nur 100S pennen).
Die Gaudi ist Interruptgesteuert.
Mach das Alles mal auf die Schnelle mit nem Arduino ...
So sieht das dann aus:
Re: Der AVR-/ARDUINO-Faden
Weil ich meinen Uno für was anderes brauche,hab ich mir einen Nano als ISP programmer zurecht gemacht.
Bin dem Bauvorschlag gefolgt und hab eine rgb LED eingebaut zur Status Anzeige.
die leuchtet jetz rot grün und blau, unabhängig davon ob ein Vorgang klappt oder nicht, weil zb gar nix dran hängt.
was soll der quatsch? oder bin ich zu doof?
ich sag erst mal: Nutzlos, schade um die led und die widerstände
Bin dem Bauvorschlag gefolgt und hab eine rgb LED eingebaut zur Status Anzeige.
die leuchtet jetz rot grün und blau, unabhängig davon ob ein Vorgang klappt oder nicht, weil zb gar nix dran hängt.
was soll der quatsch? oder bin ich zu doof?
ich sag erst mal: Nutzlos, schade um die led und die widerstände
Re: Der AVR-/ARDUINO-Faden
Wie genau funktioniert das am Arduino denn mit dem Timer und Interrupt?
Da steigt es bei mir komplett aus.
Habe schon Videos gesehen und was dazu gelesen, aber absolut keine Ahnung, wie das gehen soll.
Gibt es da irgendwo was, was man verstehen kann, was nicht auf Englisch daher kommt?
Da steigt es bei mir komplett aus.
Habe schon Videos gesehen und was dazu gelesen, aber absolut keine Ahnung, wie das gehen soll.
Gibt es da irgendwo was, was man verstehen kann, was nicht auf Englisch daher kommt?
Re: Der AVR-/ARDUINO-Faden
Gehe in „Shop deiner Wahl“
Kaufe Buch „ Arduino für Anfänger „
Kaufe Buch „Avr für Dummies“
Lese die Tutorials für den AVR Atmega auf Micrikontroller. net
So wie wir alle das getan haben, in dieser oder anderer Reihenfolge.
Mehr kann man dazu erstmal nichts sagen,
Wenns dann klemmt, gerne nochmal hier fragen.
Kaufe Buch „ Arduino für Anfänger „
Kaufe Buch „Avr für Dummies“
Lese die Tutorials für den AVR Atmega auf Micrikontroller. net
So wie wir alle das getan haben, in dieser oder anderer Reihenfolge.
Mehr kann man dazu erstmal nichts sagen,
Wenns dann klemmt, gerne nochmal hier fragen.
Re: Der AVR-/ARDUINO-Faden
Hier ein gutes Video von GreatScott https://www.youtube.com/watch?v=IdL0_ZJ7V2s ist zwar auf Englisch, aber er selbst ist Deutscher. Und er erklärt meiner Ansicht nach so, dass man es versteht.
Re: Der AVR-/ARDUINO-Faden
Ak, ok, dann kann man damit schon was anfangen.
Noch was:
Das ganze Konstrukt soll später Wechselspannung schalten. Also einfach ein und aus.
Die Relais haben bereits Freilaufdioden und Kapazität auf der 5V DC Seite verbaut.
Nun ist es aber so, dass der Arduino selbst mit dem Delay Programm regelmäßig hängen bleibt.
Also muss die Wechselspannung irgendwie den Controller aus dem Takt bringen.
Wie kann man das am besten entstören?
Noch was:
Das ganze Konstrukt soll später Wechselspannung schalten. Also einfach ein und aus.
Die Relais haben bereits Freilaufdioden und Kapazität auf der 5V DC Seite verbaut.
Nun ist es aber so, dass der Arduino selbst mit dem Delay Programm regelmäßig hängen bleibt.
Also muss die Wechselspannung irgendwie den Controller aus dem Takt bringen.
Wie kann man das am besten entstören?
Re: Der AVR-/ARDUINO-Faden
Dafür brauchen wir einen Schaltplan, um das bewerten zu können.
Re: Der AVR-/ARDUINO-Faden
Also das Programm mit dem Timer läuft immer noch nicht wie es soll.
Denn es ist irgendwie egal, was ich als Zeiten eintrage.
Hier, vielleicht ja jemand den Fehler:
Ich bin nach 3 Stunden davor sitzen nicht mehr in der Lage, irgendwas darin zu erkennen.
Denn es ist irgendwie egal, was ich als Zeiten eintrage.
Hier, vielleicht ja jemand den Fehler:
Code: Alles auswählen
#define ICPin 3 // Pin Einlesen IC
#define RelaisPin 5 // Pin Schalten Relais
long int timer=0;
void setup() {
// put your setup code here, to run once
pinMode(ICPin, INPUT_PULLUP);
pinMode(RelaisPin,OUTPUT);
digitalWrite (RelaisPin, HIGH);
TCCR0A=(1<<WGM01); //Set the CTC mode
OCR0A=0xF9; //Value for ORC0A for 1ms
TIMSK0|=(1<<OCIE0A); //Set the interrupt request
sei(); //Enable interrupt
TCCR0B|=(1<<CS01); //Set the prescale 1/64 clock
TCCR0B|=(1<<CS00);
}
void loop()
{
//if (digitalRead(3)==HIGH)
// {
if(timer>=10000)
{
timer=0;
digitalWrite (RelaisPin, LOW);
if(timer>=10000)
{
timer=0;
}
digitalWrite (RelaisPin, HIGH);
}//}
ISR(TIMER0_COMPA_vect)
{ //This is the interrupt request
timer++;
}
Re: Der AVR-/ARDUINO-Faden
sorry, ich bin da zu faul zu. ich nehm einfach millis, oder wenn aus irgendwelche spezial Gründe nicht möglich, eine Timerone/two...Lib.
Re: Der AVR-/ARDUINO-Faden
Ohne jetzt das Programm zu testen, ich habe schlicht kein Umfeld dazu. Aber hier sind ein paar schlechte Angewohnheiten drin.
Oben wird ICPin und RelaisPin definiert. Später werden teilweise wieder numerische Angaben verwendet. Murks! Nach der Definition sind ausschließlich die definierten Konstanten zu verwenden. Sonst kann man sich diese nämlich sparen und nur auf Zahlen setzen. Nur wird der Code dann komplett unlesbar.
Die gewünschte Logik innerhalb von loop() ist nicht gegeben. Vermutlich sind Klammern entfernt worden und dann nach Syntaxmeckereien planlos ans Ende angefügt worden. Hier empfehle ich erneut den Einsatz des ursprünglichen Quellcodes - der muss mal funktioniert haben.
Die Lesbarkeit des Codes geht gegen Null, dabei sind das nur wenige Zeilen. Korrekte Einrückung und Klammerung sind für die Übersicht notwendig. Ein für die Programmierung geeigneter Editor kann dabei sehr helfen.
Ansonsten lernt es sich deutlich einfacher ohne Timer, viele Grundfunktionen brauchen den nicht. Register durchzählen und auswerten ist viel einfacher und besser zu durchschauen.
MfG. Andreas
Oben wird ICPin und RelaisPin definiert. Später werden teilweise wieder numerische Angaben verwendet. Murks! Nach der Definition sind ausschließlich die definierten Konstanten zu verwenden. Sonst kann man sich diese nämlich sparen und nur auf Zahlen setzen. Nur wird der Code dann komplett unlesbar.
Die gewünschte Logik innerhalb von loop() ist nicht gegeben. Vermutlich sind Klammern entfernt worden und dann nach Syntaxmeckereien planlos ans Ende angefügt worden. Hier empfehle ich erneut den Einsatz des ursprünglichen Quellcodes - der muss mal funktioniert haben.
Die Lesbarkeit des Codes geht gegen Null, dabei sind das nur wenige Zeilen. Korrekte Einrückung und Klammerung sind für die Übersicht notwendig. Ein für die Programmierung geeigneter Editor kann dabei sehr helfen.
Ansonsten lernt es sich deutlich einfacher ohne Timer, viele Grundfunktionen brauchen den nicht. Register durchzählen und auswerten ist viel einfacher und besser zu durchschauen.
MfG. Andreas
- Fritzler
- Beiträge: 12605
- Registriert: So 11. Aug 2013, 19:42
- Wohnort: D:/Berlin/Adlershof/Technologiepark
- Kontaktdaten:
Re: Der AVR-/ARDUINO-Faden
Ja, solch schlechten Code sieht man echt selten.
Es sollte wirklich BEVOR irgendwie weitergemacht wird ein Buch konsultiert werden.
Das führt sonst einfach zu nichts, da ist nichtmal das grundlegendste Verständnis der Klammersetzung vorhanden.
Es sollte wirklich BEVOR irgendwie weitergemacht wird ein Buch konsultiert werden.
Das führt sonst einfach zu nichts, da ist nichtmal das grundlegendste Verständnis der Klammersetzung vorhanden.
Re: Der AVR-/ARDUINO-Faden
Ich muss zur Ehrenrettung dazu sagen, dass das nicht mein Code ist.
Ich habe da mit wem per Mail Kontakt gehabt und wir haben uns den Code immer
hin und her gemailt und es gab nie einen wirklich funktionierenden Stand.
Tja, muss ich mir morgen mit gaaanz viel Muße nochmal rein tun.
Ich habe da mit wem per Mail Kontakt gehabt und wir haben uns den Code immer
hin und her gemailt und es gab nie einen wirklich funktionierenden Stand.
Tja, muss ich mir morgen mit gaaanz viel Muße nochmal rein tun.
Re: Der AVR-/ARDUINO-Faden
du musst erstmal n vernünftigen editor haben. notepad++ zb. und den text formatieren. dauert eine Tastenkombination. im Grunde das gleiche was ich bei dem mathe Problem geschrieben hab. so wie oben stellst du dir selber ein bein.
edit. np++ hab ich schon ewig, nervt aber seit längerer Zeit. -> PSPad scheint ganz gut.
edit. np++ hab ich schon ewig, nervt aber seit längerer Zeit. -> PSPad scheint ganz gut.
Zuletzt geändert von ch_ris am Sa 27. Nov 2021, 09:18, insgesamt 2-mal geändert.
Re: Der AVR-/ARDUINO-Faden
Und? Hast die Fehler gefunden?
--------------------------
Ich will mir mal einen HV Fuse Doctor bauen um beim Tiny den Reset Pin nutzen zu können.
Wie ist das denn das bei einem verfusten Nano?
Ich las, man müsse zumindest den Quarz ablöten oder den 328p komplett auslöten.
Das macht das absurd für mich, dann brauch ich den entsprechenden Code nicht zu einzubauen.
(Von der Kontaktierungs-Problematik mal ganz abgesehen, aber das wäre noch irgendwie lösbar.)
Re: Der AVR-/ARDUINO-Faden
Ne, ich nicht, aber der, von dem das kam.
Da musste noch irgendwie ein Flag als Merker rein, mehr habe ich nicht verstanden.
- Weisskeinen
- Beiträge: 3950
- Registriert: Di 27. Aug 2013, 16:19
Re: Der AVR-/ARDUINO-Faden
Code: Alles auswählen
...
if(timer>=10000)
{
timer=0;
digitalWrite (RelaisPin, LOW);
if(timer>=10000)
{
timer=0;
}
digitalWrite (RelaisPin, HIGH);
...
Edit: Wenn man variablen im Hauptprogramm und in einer Interruptroutine verändert, sollte man die übrigens noch als volatile deklarieren. Sonst können da ganz seltsame Sachen passieren, je nach Lust und Laune des Compilers...
Re: Der AVR-/ARDUINO-Faden
Nimmt man bei einem Arduino zur Datenübertragung nun GSM oder LTE Module?
Viele Daten sind das nicht.
LAN und W-LAN gis zwar auch noch, hab ich aber nicht überall zur Verfügung
Kann der Arduino bei einem Interrupt dann auch per Telefon nach hause telefonieren? Oder über einen Lautsprecher eine Sprachnachricht dudeln lassen? (Bleiben sie wo sie sind, die Polizei ist informiert, eine Videoaufnahme wurde gestartet)
Viele Daten sind das nicht.
LAN und W-LAN gis zwar auch noch, hab ich aber nicht überall zur Verfügung
Kann der Arduino bei einem Interrupt dann auch per Telefon nach hause telefonieren? Oder über einen Lautsprecher eine Sprachnachricht dudeln lassen? (Bleiben sie wo sie sind, die Polizei ist informiert, eine Videoaufnahme wurde gestartet)
Re: Der AVR-/ARDUINO-Faden
Also mit dem SIM800 Modul habe ich so Sachen schon gemacht. Ist ein schön günstiges Modul. Allerdings würde ich immer zum stillen Alarm raten. Entweder still oder so, das der Täter so einen Schreck bekommt, dass er nicht mehr rum schnüffelt.
Ich vermute mal Du willst was mit Bewegungsmelder machen. Darum der Hinweis: Fast alle im Handel erhältlichen PIR Sensoren arbeiten eher unzuverlässig neben Funkmodulen. Das einzige Modul, welches gut funktioniert, ist mit dem AM132. Wahrscheinlich weil dort die ganze Elektronik in der Blechbüchse integriert ist. Aber auch dort sollte die Versorgungsspannung gut gefiltert werden.
Re: Der AVR-/ARDUINO-Faden
Stiller Alarm ist schlecht, weil bis ich dann da bin, ist auch schon alles zu spät.
Ich dachte an Reedkontakten unter den Kisten. Als Öffner, alle in Reihe. Wenn jemand dann eine Kiste Hochnimmt, gibs Alarm.
Ich dachte an Reedkontakten unter den Kisten. Als Öffner, alle in Reihe. Wenn jemand dann eine Kiste Hochnimmt, gibs Alarm.
Re: Der AVR-/ARDUINO-Faden
Ach so ist das. Dann aber vielleicht keine lächerliche Ansage. Eher eine 110 dB Tröte oder so was in der Art.
Oder die Kiste unter Spannung setzten. Harmlos natürlich aber sehr schmerzhaft.
Oder die Kiste unter Spannung setzten. Harmlos natürlich aber sehr schmerzhaft.
- Bastelbruder
- Beiträge: 11567
- Registriert: Mi 14. Aug 2013, 18:28
Re: Der AVR-/ARDUINO-Faden
Da muß ein (international verständliches) Warnschild mit Gummigesicht und Flasche innen an der Tür hängen. Plötzlich Licht aus, Spot an! Und aus einem unsichtbaren Lautsprecher: dit - - - - ditdit - - - ditditdit - - ditditditdit - diiii. Pschschsch ...
Re: Der AVR-/ARDUINO-Faden
Code: Alles auswählen
((100/3.6)/(1.95))*(43/16)*26
= 995,37037037037037037037
Auf dem Nano ausgeführt ergibt das glatt 1000, bzw 1000 ergibt 100.
Code: Alles auswählen
return ((((float) a/ ( b* c)) * d)* 3.6);
das mir der Präzision hab ich schon mal gelesen, daher bin ich eh geizig mit float.
hier ist's mir "egal" das ist nur ein Nebenprojekt.
Anderes Problem hab ich mit dem Tiny gehabt.
Der Main Loop ruft eine Methode mit switch, die wiederum eine Methode mit switch aufruft.
Die Methoden setzen bzw. ändern ihren case innerhalb des switch.
Das gelang nicht und ergab eine Todesschleife.
Hab den Fehler im Code gesucht wie blöd, aber nix gefunden.
mit flacherer Verschachtelung ging's dann.
möglicherweise...ich hab den Flash gut ausgenutzt, 7+Kb von 8.
weis nich ob das damit was zu tun hat. Ram ist noch gut vorhanden.
Re: Der AVR-/ARDUINO-Faden
Meine Arduinos sterben wie die Fliegen, wenn ich den Vin benutze. Entweder stirbt nur der Spannungsregler oder der legiert durch und der MC ist auch im Arsch!
Vin besser nicht nicht benutzen für Spannung größer 6V.
Vin besser nicht nicht benutzen für Spannung größer 6V.
Re: Der AVR-/ARDUINO-Faden
Schön wäre auch noch eine Drohne die irgendwo aus den Büchen abhebt und in 10m Höhe über den Bienenstand kreist. Vielleicht sogar mit Videokamera
- Später Gast
- Beiträge: 1706
- Registriert: Di 5. Apr 2016, 22:03
- Wohnort: Karlsruhe
- Kontaktdaten:
Re: Der AVR-/ARDUINO-Faden
Hast du da evtl nen Link zu?
Ich hab da n Projekt mit schneller und genauer Temperaturmessung, (840sps 16bit ballern in ein Array von 30 Werten, wenn der voll ist, wird der Schnitt ausgegeben, macht rauschfreie 28sps) die mit "double" arbeitet, was ja bei arduino wie float behandelt wird. Da hatte ich mal in der seriellen Ausgabe das runterdividieren vergessen und war über das häufige Auftauchen identischer Werte verwundert. Der PID Regler arbeitet auf +-1K genau, also tadellos, aber das Bessere ist der Feind des Guten.
- Später Gast
- Beiträge: 1706
- Registriert: Di 5. Apr 2016, 22:03
- Wohnort: Karlsruhe
- Kontaktdaten:
Re: Der AVR-/ARDUINO-Faden
Hatte ich bei ner Charge pro minis auch schon. Bei mir klassischer Fall von zu billig gekauft. Bei meinen steigt die Stromaufnahme mit der Eingangsspannung extrem an, was dann zur thermischen Überlastung führt. Resultat: Die Minis liegen wie Blei in der Sortierkiste.
Re: Der AVR-/ARDUINO-Faden
nee, goock mal avr float precision.
ich denke das ist ein Fall von isso.
- Später Gast
- Beiträge: 1706
- Registriert: Di 5. Apr 2016, 22:03
- Wohnort: Karlsruhe
- Kontaktdaten:
Re: Der AVR-/ARDUINO-Faden
Hmm. Meinst du dashier:
Das hab ich mir beim Schreiben angeschaut und sollte mir eigentlich keine Probleme machen, die Temperaturen sind nur dreistellig, bleiben drei Nachkommastellen, so genau wirds selbst mit der Schnittbildung eher nicht. Muss ich wohl nochmal meinen Stuhlgang konsultieren, als Möchtegernkoter kommt's schon vor, dass ich suboptimal rechnen lasse....Floats have only 6-7 decimal digits of precision. That means the total number of digits, not the number to the right of the decimal point. Unlike other platforms, where you can get more precision by using a double (e.g. up to 15 digits), on the Arduino, double is the same size as float.
Re: Der AVR-/ARDUINO-Faden
Hallo,
ich habe heute eine mir unbekannte Zählweise bei einem Gerät entdeckt. Hier mal zwei paar Beispiele:
FF FF 01 --> 80 80 02
FF 80 02 --> 80 81 02
Kennt jemand so etwas und wenn ja: Wie dekodiert man das nach Dezimal?
Viele Grüße
Andreas
ich habe heute eine mir unbekannte Zählweise bei einem Gerät entdeckt. Hier mal zwei paar Beispiele:
FF FF 01 --> 80 80 02
FF 80 02 --> 80 81 02
Kennt jemand so etwas und wenn ja: Wie dekodiert man das nach Dezimal?
Viele Grüße
Andreas