Schlagwort-Archiv: arduino

Countdown mit 7-Segment LED Display und Alarm (Arduino)

Ich habe hier ein 7 Segment Display (XH-8401ARW) aus einem defekten Gerät ausgelötet und mal getestet. Aktuell läuft jede Millisekunde der Counter runter, bis der Counter 0 ist und dann gibt es einen Piepston von sich. Man kann natürlich auch eine LED, Motor, Stepper,… auslösen. Das Ganze geht natürlich auch mit anderen 7-Segment LED Displays. Vielleicht kann das ja mal jemand für sein Projekt gebrauchen ;).

1 x Arduino
4 x 1 KOhm Widerstand
1 x Buzzer
1 x 7-Segment LED Display

 

XH-8401ARW 7 Segment Display

Für den Code benötigt man „SevenSeg“ Library.

#include "SevSeg.h" //include Seven Seg. Library
SevSeg sevseg; //init Segment-object

int buzzerPin = A0; //pin for Sound
bool alarm = false;
int number=9999; //Counter value 1-9999

void setup()
{
byte numDigits = 4; //number of digits
byte digitPins[] = {2, 3, 4, 5}; //digit pins
byte segmentPins[] = {6, 7, 8, 9, 10, 11, 12, 13}; //Pins Segment
sevseg.begin(COMMON_CATHODE, numDigits, digitPins, segmentPins);
sevseg.setBrightness(90);
}

void loop()
{
static unsigned long timer = millis();
static int deciSeconds = 0;

if (millis() – timer >= 100) {
timer += 100;
deciSeconds++; // 100 milliSeconds is equal to 1 deciSecond
if(number>0){
number–;
}
if (deciSeconds == 10000) { // Reset to 0 after counting for 1000 seconds.
deciSeconds=0;
}
sevseg.setNumber(number, 4);
}

if(number==0 && alarm==false){
tone(buzzerPin, 1000, 2500);
alarm=true;
}

sevseg.refreshDisplay(); // Must run repeatedly

}

Ich übernehme natürlich keine Verantwortung für irgendwelche Schäden. Alles auf eigene Gefahr.
Code kann auch als ZIP runtergeladen werden.

7Seg-anzeige

CTC Prusa i3 Bootloader installieren

So jetzt mal die schlechte Seite vom CTC Prusa i3: Die Firmware ist veraltet. EEPROM ist abgeschaltet, man kann dadurch keine Einstellungen speichern. Sobald man den CTC Prusa i3 ausschaltet, sind die Werte weg und es werden alle Einstellungen von der Firmware verwendet. Bootloader fehlt auch noch, so dass man per USB keine Firmware aktualisieren kann. Die orginalen roten Treiber haben keine Kühler, so dass nach ca. 1 Stunde drucken zum Versatz kommt. Ab einer gewissen Temperatur setzen die Treiber aus, damit Sie nicht überhitzen. Diese Sprünge sieht man dann am gedrucken Stück, je heißer desto größer werden die Aussetzer. Bin aber erst viel später drauf gekommen. Da 4 Kühlkörper fast genaus viel kosten wie 5 neue 1/32 Step (Schrittauflösungen) Treiber mit Kühlkörper, habe ich gleich die bestellt. Ersatz zu haben ist auch immer gut ; ). Problem ist aber dabei nur, man kann ohne die Firmware anzupassen keine 1/32 step (Schrittauflösungen) Treiber nutzen. Macht man das, so wird man bei z.B. x = 200 nur die Hälfe erreichen.
Wieso ? Weil 32 / 2 = 16 ist ; )
Man muss also bei der Firmware die Werte verdoppeln:

#define DEFAULT_AXIS_STEPS_PER_UNIT { 157.48, 157.48, 5120, 210 }

Aber bei CTC gibt keiner irg. information darüber, das einzige was kommt ist, dass Sie keine Firmware haben. Kann ich mir nicht wirklich vorstellen. Aber jetzt die gute Nachricht. Es geht auch ohne CTC. Ich habe jetzt Marlin-1.1.0-RC8 drauf und auf Deutsch umgestellt. Auch die Treiber laufen jetzt im 1/32 step.

Was man braucht ist folgendes:

Einen USBASP, ich habe den V3 verwendet. Ob das mit anderen geht, weiß ich nicht. USBASP V3 kostet so ca. 4€ mit Versand und sieht so aus:

USBASP V3

Das muss man dann aber nicht mit dem mitglieferten Kabel verbinden, sondern mit  Jumper Wire Kabel (beide Seiten weiblich). Dann muss man das so am GT2560 Board Rev. a verbinden:

USBaspV3 am GT2560 Board verbinden

Links in weiß ist das GT2560 Board Rev. A und das grüne soll das USBASP V3 sein. Fotos hätte ich auch machen können, aber das Board wollte ich nicht nochmal abklemmen. Aber am Resettaster und -stecker kann man ganz gut rausfinden wie das Board liegt.

Ich habe noch arduino-1.8.1 heruntergeladen.
Kann auch mit neuerer Version gehen, wenn eine rauskommt. Falls nicht, muss man sich die alte ZIP Version runterladen.
Als Zip-Version muss man nichts installieren und kann das danach löschen.

Prüftunbedingt die richtige Verkabelung, sonst ist das GT2560 Board und auch USBASP dauerhaft beschädigt!

Das Nachmachen geschieht auf eigene Gefahr! Ich übernehme keine Garantie und ihr verliert auch die Gartanie vom Gerät selber, steht ausnahmsweise sogar mal in der englischen Anleitung von CTC

Hier nochmal die Kabelfarben erläutert:

Rot = 5V+
Grau = MOSI
Braun = MISO
Lila= RST
Blau = GND
Schwarz = GND
Weiß = SCK

Wenn alles richtig angeschlossen ist, kann man endlich den nötigen Bootloader installieren. Man muss jetzt „arduino“ im Ordner ausführen und im Menü „Werkzeug“ -> „Programmer“ -> „USBASP“ auswählen. Dann wieder im Menü „Werkzeug“ -> „Board“ das Board „Arduino/Genuino Mega or Mega2560“ auswählen. Es muss natürlich auch ein Prozessor ATMega2560 ausgewählt werden. Das ist bei Menü „Werkzeug“ -> „Prozessor“ zu erledigen. Jetzt kann man das USBASP V3 mit dem PC verbinden, dazu eignet sich ein langes USB Verlängerungskabel.

Seit euch bewusst, dass ab jetzt die orginale Firmware dauerhaft gelöscht wird! Ihr müsst nach dem Brennen des Bootloaders eine neue Firmware raufladen. Auf marlinfw.org gibt es die Firmware zum runterladen, das allein genügt aber nicht. Man muss da einiges konfigurieren. Dafür muss man sich Zeit nehmen, sonst wird das nichts. Wichtig ist die Datei „Configurations.h“. Steht aber alles in der Dokumentation von marlinfw.org.

Nachdem man sich jetzt bewusst ist, was man tut, kann man im Menü „Werkzeug“ auf „Bootloader brennen“ klicken.
Wartet ab, bis das Programm „Arduino“ meldet, dass der Upload fertig ist. Kein Kabel ziehen oder irgendwelche Spiele nebenbei spielen. Lasst den Rechner nur das machen, um wirklich sicher zu gehen, das nichts passiert.
Nicht, dass mittendrin der Rechner abstürzt,… Eine rote LED sollte nun am GT2560 Board blinken.
Ab jetzt kann man die Firmware über USB mit Arduino IDE installieren.

Und hier ein CTC i3 Pro B mit der Firmware Marlin-1.1.0-RC8 und noch eine Antwort vom CTC Support:

CTC Marlin 1.1.0 RC8

Dear Marcus, how are you! Thank you for your quick response and understanding for our work, but really very, very sorry, we really do not have the firmware you said, if you have other questions, please contact me, will be promptly for you to solve.

Please also note that: if the printer can not be used because the customer changes the firmware, will not be in our warranty service, thank you!

Freundlich sind Sie ja 🙂