Hallo Leute, ich bin absoluter Anfänger in Sachen Mikrocontroller. Die unzählige Vorteile liegen aber auf der Hand, denn man kann auf umständliche Schaltungen und fertig ICs verzichten, noch dazu ist ein uC platzsparend. Als erstes Bastelprojekt wollte ich eine klassische, sechsstellige 7-Segment LED Uhr bauen. Evtl. noch mit Zusatzfunktionen wie zB. Alarm, oder Stoppuhr und Countdowntimer. In der Bastelkiste liegen mehrere Attiny26 und pinmässig (und grundsätzlich) dürfte sich der ATTiny auch für eine Uhr eignen, oder? Ich bin mir noch unsicher, was Genauigkeit angeht(externer/interner Quarz?). Wie groß wären die Abweichungen zB. auf ein Jahr bezogen? Hat hier evtl. jemand gute Codebeispiele für eine Uhr mit Attiny26? Das Ganze von Grund auf selbst zu schreiben traue ich mir definitiv nicht zu, daher bräuchte ich etwas Orientierung, wie man sowas angeht(gerne auch Lektüretipps und Beispielprojekte, die in die Richtung gehen). Viele Grüße Alexander
Mache es dir nicht unnötig schwer, und nimm dafür einen Atmega328. Da musst du nicht um jeden freien Pin und um jedes Byte Speicher feilschen. Es gibt keinen internen Quarz, das ist ein R/C Oszillator, der für eine Uhr völlig ungeeignet ist. > Das Ganze von Grund auf selbst zu > schreiben traue ich mir definitiv nicht zu Dann lass es bleiben. Durch copy-paste Programmierung lernt man nichts. Sparen kannst du auch nichts, verglichen mit solchen Bausätzen: https://de.aliexpress.com/item/1005003480148637.html https://de.aliexpress.com/item/1005005199299726.html Mein AVR Buch könnte dir gefallen. Da wird zwar keine 7-Segment Uhr erklärt, aber die Programmierung von 7-Segment Anzeigen und eine Uhr mit analoger Anzeige. Kombinieren kannst du das dort gelernte selber, wenn du magst. http://stefanfrings.de/mikrocontroller_buch/
:
Bearbeitet durch User
Die Programmierung einer Uhr besteht aus drei groben Programmteilen. Zum einen eine sinnvolle Ausgabe aufs Display und zum zweiten ein Uhrengetriebe, was m.E. am besten im Timerinterrupt angetrieben wird. Der dritte Teil betrifft das Stellen. Das Getriebe kann man z.B. aus if-thens aufbauen, um Sekunden, Minuten und Stunden runterzuteilen. Mit AVR GCC kann sowas so aussehen:
1 | // a simple clock gearbox
|
2 | volatile uint8_t fifties = 0; |
3 | volatile uint8_t seconds = 0; |
4 | volatile uint8_t minutes = 0; |
5 | volatile uint8_t hours = 0; |
6 | volatile uint16_t days = 0; |
7 | // clock gearbox is called every 1/50 of a second
|
8 | // Note that it is really the CTC interrupt but the 8515 uses the COMP vector
|
9 | // 6 byte clock : fifties:seconds:minutes:hours:dayshi,dayslo
|
10 | // this clock will wrap around after 65535 days ~= 179 years
|
11 | |
12 | ISR(TIMER0_COMP_vect) { |
13 | fifties++; |
14 | if (fifties > 49) { |
15 | fifties = 0; |
16 | seconds++; |
17 | if (seconds > 59) { |
18 | seconds = 0; |
19 | minutes++; |
20 | if (minutes > 59) { |
21 | minutes = 0; |
22 | hours++; |
23 | if (hours > 23) { |
24 | hours = 0; |
25 | days++; |
26 | }
|
27 | }
|
28 | }
|
29 | }
|
30 | }
|
:
Bearbeitet durch User
Evtl. mit Projekt fuer einen der Bausaetze anfangen: https://github.com/ruthsarian/at89c2051_clock Ist zwar noch fuer at89c2051 aber in C, sollte also uebertragbar sein.
Traue dich doch einfach, die folgenden Sätze bei ChatGPT oder CoPilot reinzuhauen und frage darüber hinaus alles nach, was Du nicht verstehst. „Erstelle bitte ein Projekt in C für eine einfache Uhr mit einem Attiny 26, 6 Stück 7-Segment, 6 Stück 74HC595 und einem 32kHz-Quarz.“ „Erkläre mir genau, was ich wo anschließen muss und wie ich die Schieberegister verdrahten muss“ „Erkläre mir, wie ich die Optionsbits für den Attiny setzen muss“ Wird hier in diesem Forum zerpflückt werden, egal, mache es trotzdem mal.
:
Bearbeitet durch User
Alexander H. schrieb: > Als erstes Bastelprojekt wollte ich eine klassische, sechsstellige > 7-Segment LED Uhr bauen. > In der Bastelkiste liegen mehrere Attiny26 und pinmässig (und > grundsätzlich) dürfte sich der ATTiny auch für eine Uhr eignen, oder? Na, mal sehen. Der ATTiny26 hat 16 prinzipiell nutzbare Pins. Allerdings wird man Reset mal Reset sein lassen wollen. Und MISO, MOSI und SCK (vulgo: ISP) wird man beim Erstkontakt mit dem µC auch eher frei lassen wollen. Wenn man eine Quarzuhr im Wortsinn bauen will, braucht man auch die XTAL-Anschlüsse. Es bleiben also 10 Pins übrig. Eine 6-stellige 7-Segment Anzeige hat 7×6 = 42 Segmente. Und zwei Doppelpunkte will man wohl auch noch. Auch wenn man die Anzeige im Multiplex ansteuert, braucht man noch 7+6 = 13 Pins. Und da sind die Doppelpunkte noch gar nicht berücksichtigt. Und Tasten zum Stellen oder Alarm ein- und ausschalten ebenfalls nicht. Das wird also ausgesprochen knapp (LOL) mit den Pins. Zumindest wenn man auf "umständliche Schaltungen und fertig ICs verzichten" will. Tu dir selber einen Gefallen und nutze zum Basteln und Ausprobieren einen "großen" µC. Etwa einen ATMega1284. Da hast du dann Pins satt. Wobei es für das parallele Ansteuern einer 6-stelligen Anzeige auch dann nicht reicht. > Ich bin mir noch unsicher, was Genauigkeit angeht(externer/interner > Quarz?). Der interne Oszillator ist ein RC-Oszillator und als Taktgeber für eine Uhr denkbar ungeeignet. > Wie groß wären die Abweichungen zB. auf ein Jahr bezogen? So groß bzw. klein wie du willst. Du kannst mit einem gut abgeglichenen Quarz wenige Sekunden im Jahr erreichen. Oder du bringst den Fehler auf 0 indem du eine Funkuhr oder GPS-Uhr baust. > Hat hier evtl. jemand gute Codebeispiele für eine Uhr mit Attiny26? > Das Ganze von Grund auf selbst zu schreiben traue ich mir definitiv > nicht zu Die Uhr selber ist trivial. Das sind nur 3 Zähler, die bis 59, 59 und 23 gehen. Das sollte jeder hinbekommen, der ernsthaft mit µC basteln will. Der aufwendigere Teil ist die Ansteuerung der LED und das macht eigentlich jeder anders. Auch beim Stellen der Uhr (falls überhaupt, eine Funkuhr braucht das nicht) gibt es viele Wege nach Rom. Beim Alarm scheiden sich dann endgültig die Geister. Wieviel Alarme? Mit Berücksichtigung des Wochentags? Vielleicht ein Lied spielen statt einfach nur piepen? Vielleicht noch Weihnachten und diverse Geburtstage kennen? Anregungen bietet das Internet zuhauf. Wenn ich bei Google nach "DIY Uhr AVR" suche, werde ich mit Ergebnissen totgeworfen. Aber gut, wenigstens ein Beispeit. Scott-Falk Hühns Uhren haben manchen inspiriert: https://s-huehn.de/elektronik/multiuhr/multiuhr.htm
:
Bearbeitet durch User
Sherlock 🕵🏽♂️ schrieb: > http://stefanfrings.de/mikrocontroller_buch/ der wievielte Account ist das eigentlich von dir Stefan?
Falls es ein wenig innovativ sein sollte: Nimm statt der klassischen 7-Segment-LED-Anzeigen einfach Schnipsel von adressierbaren LED-Strips (WS2812B o.ä.) zu je 3 ... 5 oder mehr LEDs. Die Stipse sind mit der Schere beliebig ablängbar. Damit kann einerseits die Anzeige deutlich größer und damit einruckvoller sein und du hast freie Wahl bezüglich der Farbe. Aufgrund des eingebauten PWM gibts das Dimmen gratis dazu. UND!!! - es braucht nur einen Pin am Mikrocontroller!!!
Frank E. schrieb: > Falls es ein wenig innovativ sein sollte: > > Nimm statt der klassischen 7-Segment-LED-Anzeigen einfach Schnipsel von > adressierbaren LED-Strips (WS2812B o.ä.) zu je 3 ... 5 oder mehr LEDs. > Die Stipse sind mit der Schere beliebig ablängbar. > Guter Vorschlag, aber dann doch bitte mit der APA102. Ein Pin mehr aber soooo viel entspannter zu programmieren ohne dieses besch… Timing, wo einem der Interrupt in die Quere kommen KANN.
:
Bearbeitet durch User
Alexander H. schrieb: > Hat hier evtl. jemand gute Codebeispiele für eine Uhr mit Attiny26? Beitrag "DCF77 Uhr in C mit ATtiny26"
Alexander H. schrieb: > ich bin absoluter Anfänger in Sachen Mikrocontroller (...) > Als erstes Bastelprojekt wollte ich eine klassische, sechsstellige > 7-Segment LED Uhr bauen. Keine gute Kombination für den Startschuss.
Alexander H. schrieb: > sechsstellige > 7-Segment LED Uhr bauen. Hierfür brauchst du weniger Pins: https://www.az-delivery.de/products/4-digit-display
Alexander H. schrieb: > Als erstes Bastelprojekt wollte ich eine klassische, sechsstellige > 7-Segment LED Uhr bauen. Nunja, das geht auch mit Schieberegistern und Transistoren, die die LEDs antreiben oder besser noch mit 7-Segment-Treibern, von denen es etliche zur Auswahl gibt. Der µC steuert dann nur noch die seriell ausgegebenen Bits für die Anzeige, läuft mit seinem Quarztakt und stellt das "Uhrengetriebe" dar. mfg
Frank E. schrieb: > UND!!! - es braucht nur einen Pin am Mikrocontroller!!! und das hier... https://www.reichelt.de/7-segment-anzeige-11x9x9-7mm-ziffern-7-62mm-men-2274-1001-p135533.html?&trstct=pol_4&nbc=1
Frank E. schrieb: > Falls es ein wenig innovativ sein sollte: 'Innovativ' und für einen Anfänger? Da wäre doch TFT das Einfachste :-( Man kann LED/LCD bequem mit wenigen Pins ansteuern: http://mino-elektronik.de/7-Segment-Variationen/LCD.htm Bei LCD gibt es schon passende Anzeigen mit Doppelpunkten. Ein Anfänger sollte sich zunächst einmal all das zulegen, was man zum Programmieren eines AVRs braucht: passende IDE und Programmieradapter. Das sind die notwendigen Voraussetzungen. Lerne zunächst, damit umzugehen.
Ok, eure Tipps haben schon mal weitergeholfen. Vielen Dank! Ich werde definitiv einen Atmega328 nehmen, da der über genug Pins verfügt. Konkret schwebt mir eine Uhr mit Alarmfunktion und 6 Stellen vor. Oft wird eine RTC als Zetbasis verwendet. Mir würde auch ein Quarz ausreichen. Die meisten gut dokumentierten Projekte verzichten auf die Sekundenanzeige. Kann man das einfach ergänzen (sofern der Code lesbar vorliegt) oder würde das Programmiererfahrung voraussetzen? Falls jemand eine Uhr mit Atmega328 kennt, die zuverlässig läuft, wäre ich interessiert. Beim Nachbau lernt man durchaus auch was😀
Es gibt auch fertige Anzeigen mit MAX7219: https://www.az-delivery.de/en/products/azdelivery-max7219-led-modul-8-bit-7-segmentanzeige-led-display-fur-arduino-und-raspberry-pi
Peter D. schrieb: > Es gibt auch fertige Anzeigen mit MAX7219: Und dafür gibt es bei Arduino schon Bibliotheken. Ich verstehe auch nicht, wieso das ein Attiny26 sein muss, wenn man noch nichts gemacht hat. Üblicherweise fängt man mit "Hello World" (also eine blinkende Led) an. Aber wenn schon, dann würde ich die fertig nehmen Mit dem Uno R4 hat der TO dann auch schon gleich eine Echtzeituhr dabei. Aber jeder quält sich halt wie er will.
Harald A. schrieb: > Traue dich doch einfach, die folgenden Sätze bei ChatGPT oder CoPilot > reinzuhauen und frage darüber hinaus alles nach, was Du nicht verstehst. Kann man solche Tipps bitte unterlassen? Es ist sowieso schon schlimm genug, selbst DuckDuckGo bringt schon alles durcheinander. Normalerweise kennzeichnen die Werbung ziemlich auffällig :(
Frank O. schrieb: > Peter D. schrieb: >> Es gibt auch fertige Anzeigen mit MAX7219: > > Und dafür gibt es bei Arduino schon Bibliotheken. Oh nein, bloß nicht. Der ursprüngliche Zweck von Arduino war ja, Dinge schnell von fachfremden Leuten zusammenstöpseln zu lassen (Künstler etc). Und diese Zielstellung schimmert überall durch. Der TE will aber gerade lernen mit µC umzugehen. Und da ist Arduino eher hinderlich als förderlich. Gegen eine achtstellige Anzeige mit MAX7219 spricht dabei natürlich nichts, da kann man die Zeit dann als HH-MM-SS darstellen. Die Anbindung per SPI erlaubt dann sogar die Verwendung des Tiny26, weil man nur noch 3 Pins für das Display braucht. Wenn das läuft, würde ich aber trotzdem den Aufbau eines eigenen Displays vorschlagen. Dann geht auch HH:MM:SS. Oder man kann die Sekunden kleiner machen. Auch gegen die Verwendung eines z.B. Arduino nano (Klones) mit Mega328 spricht nichts. Da bekommt man immerhin die Debugausgabe per USB-UART und das einfache Flashen über den Arduino Bootloader frei Haus. Gegen ein full size Arduino Board spricht aber schon der Formfaktor und die nicht im 100mil Raster liegende zweite Pinreihe. Alexander H. schrieb: > Falls jemand eine Uhr mit Atmega328 kennt, die zuverlässig läuft, wäre > ich interessiert. Beim Nachbau lernt man durchaus auch was Schau bei Scott-Falk Hühn vorbei. Auf der Webseite sind massig Uhren und Wecker. Das Zeug ist auch anständig dokumentiert. Und einmal (bei der Wohnraumuhr2 IIRC) zeigt er auch, wie man extra Anzeigen (für die Sekunden!) per Schieberegister ansteuert wenn die Pins am µC knapp sind. Ansonsten bin ich aber kein großer Fan von Nachbauten. Man soll sich ruhig selber Gedanken machen und Dinge auch mal anders lösen.
Axel S. schrieb: > Der TE will aber gerade lernen mit µC umzugehen. Und da ist Arduino > eher hinderlich als förderlich. Gegen eine achtstellige Anzeige mit > MAX7219 spricht dabei natürlich nichts, da kann man die Zeit dann als > HH-MM-SS darstellen. Die Anbindung per SPI erlaubt dann sogar die > Verwendung des Tiny26, weil man nur noch 3 Pins für das Display braucht. > Wenn das läuft, würde ich aber trotzdem den Aufbau eines eigenen > Displays vorschlagen. Dann geht auch HH:MM:SS. Oder man kann die > Sekunden kleiner machen. Da muß ich Dir voll zustimmen! Sonst kommt hier noch ein Vorschlag, eine fertige Uhr zu kaufen und zu sehen, was dort verbaut ist :-( Frank O. schrieb: > Aber jeder quält sich halt wie er will. Das ist so, wenn man etwas lernt. Irgendwann läßt der Schmerz auch wieder nach.
Axel S. schrieb: > Und diese Zielstellung schimmert überall durch. Kann er in C programmieren. Ich meinte auch grundsätzlich die Hardware von Arduino. So findet er wenigstens gut rein. Und ob C, Assembler oder Arduino, Bibliotheken wird man doch nach Möglichkeit fertige benutzen, wenn es die gibt. Ich habe nach dem Einstieg Attiny10 genommen und in C programmiert. Aber halt erst, nachdem ich etwas sicher war. Wozu gibt's sonst die Development-Kits? Wenn man Arduino als solches betrachtet, dann hat man vielleicht nicht mehr solche Probleme damit. Warum hat Arduino so viel Erfolg und warum gibt es Cube, weil der Mensch den einfachen Weg bevorzugt.
:
Bearbeitet durch User
Alexander H. schrieb: > Die meisten gut dokumentierten Projekte verzichten auf die > Sekundenanzeige. Weil man Sekunden in der Praxis nur bei einer Stoppuhr braucht. Du baust aber einen Wecker. > Kann man das einfach ergänzen (sofern der Code lesbar > vorliegt) oder würde das Programmiererfahrung voraussetzen? In der Regel ist das Ändern der Quelltexte von anderen Autoren schwieriger, als etwas eigenes zu programmieren.
:
Bearbeitet durch User
Im Anhang mein "Uhrwerk" realisiert über einen Zeitstempel, allerdings zu Demozwecken ohne Anzeige mit Ausgabe auf UART für einen ATmegaxx8. Sherlock 🕵🏽♂️ schrieb: > In der Regel ist das Ändern der Quelltexte von anderen Autoren > schwieriger, als etwas eigenes zu programmieren. :-) könnte hier etwas umfangreicher sein das zu analysieren. Aaaaber wenn er das geschafft hat, schafft er alles andere auch. Vielleicht hilfts.
Sherlock 🕵🏽♂️ schrieb: > In der Regel ist das Ändern der Quelltexte von anderen Autoren > schwieriger, als etwas eigenes zu programmieren. Wenn man fremde Bibliotheken benutzt, dann muss man schon die Beispiele her nehmen. Allein wegen der keywords. Aber du hast vom Grundsatz recht. Im eigenen Programm findet man sich besser zurecht.
Übrigens: GPS-Chips/Breakouts gibts deutlich unter 10,- Es gibt wohl kaum eine einfachere und billigere Methode, um an eine hoch genaue Zeit und Datum zu kommen, auch wenn man garnicht wissen will, wo man sich befindet. Man muss nur den NMEA-Textstream parsen ... Beispiel: https://www.amazon.de/APKLVSR-GPS6MV2-Antennen-Flugsteuerung-Positionsmodul-Arduino/dp/B0D3DJ58R8 Ich weiss, es gibt auch billige DCF-Module. Nach meiner Erfahrung empfangen die aber deutlich schlechter bzw. unsicherer und nur in großen Zeitabständen. Aus einem GPS-Empfänger sprudeln die Daten quasi ohne Unterlass, sobald er (nach längerem hartem Ausschalten) den "Almanach" geladen hat und auch nur ein einziger Sat empfangen wird. Das sollte auch in Innenräumen gelingen, sofern die Uhr nicht im Keller steht. Da reicht am anzeigenden MC tatsächlich der RC-Oszi vollkommen aus.
:
Bearbeitet durch User
Frank E. schrieb: > Man muss nur den NMEA-Textstream parsen ... Woher kommt bloß immer der Zwang, PNGs nur als Briefmarke zu posten. Selbst mit Lupe ist nur schwer was zu erkennen. Wenns am Datenvolumen hapert, man darf Text sogar als Text posten (C&P).
Frank E. schrieb: > Es gibt wohl kaum eine einfachere und billigere Methode, um an eine hoch > genaue Zeit und Datum zu kommen, auch wenn man garnicht wissen will, wo > man sich befindet. Weißt Du denn, wo Du Dich befindest? Für den Anfang reicht dem TO für den Funktionstest schon ein RC-Oszillator, bevor er dann die Schaltung mit einem Quarz hinreichend stabil bekommen kann.
Frank E. schrieb: > Beispiel: > https://www.amazon.de/APKLVSR-GPS6MV2-Antennen-Flugsteuerung-Positionsmodul-Arduino/dp/B0D3DJ58R8 Brauchen die immer eine Stützbatterie oder kann man die auch ablöten. Ich mag keine Batterien auf der Platine wegen Auslaufen.
Wahnsinn, wie man eine Uhr alternativ auch noch bewerkstelligen kann. Mir würde aber ein genauer (Uhren-)Quarz zur Takterzeugung oder ein RTC (teilweise störanfällig?) ausreichen. Die Ausgabe soll in HH-MM-SS erfolgen (ein 8 digit display). Die Anzeige von Datum, evtl. Countdown und Stoppuhr wären natürlich auch klasse. Leider sind die im Netz präsentierten Uhren öfters fehlerbehaftet, laufen zu schnell/zu langsam (wie man manchmal auf Blogs lesen kann). Ob Attiny26 oder Atmega328 ist eigentlich egal. Wenn möglich wollte ich den Atmega328 nehmen, da dann externe Ansteurungs ICs entfallen.
Peter D. schrieb: > Frank E. schrieb: >> Beispiel: >> > https://www.amazon.de/APKLVSR-GPS6MV2-Antennen-Flugsteuerung-Positionsmodul-Arduino/dp/B0D3DJ58R8 > > Brauchen die immer eine Stützbatterie oder kann man die auch ablöten. > Ich mag keine Batterien auf der Platine wegen Auslaufen. Diese Batterie stützt einen RAM, in dem der sog. "Almanach" gespeichert ist. Das ist so eine Art Basis-Info, die es dem GPS-Empfänger erleichtert bzw. zeitlich verkürzt, sich quasi im Raum zwischen den Sats zurecht zu finden. Ohne dauert es nach einem Aus/Anschalten wesentlich länger, bevor Daten kommen. Details hier: https://de.wikipedia.org/wiki/Almanach_(GNSS) Ich meine, diese Zellen sind extrem long-live und werden sicher nicht auslaufen bzw. erst in Jahrzehnten.
Alexander H. schrieb: > Wenn möglich wollte ich > den Atmega328 nehmen, da dann externe Ansteurungs ICs entfallen. Der hat aber nicht die nötigen 64 Ausgänge für 8 Digits. Du brauchst also doch Schieberegister oder Multiplexer mit Konstantstromausgängen. Multiplexen ginge auch diskret (16 Transistoren + Hühnerfutter) und Software (Timerinterrupt).
Alexander H. schrieb: > Wahnsinn, wie man eine Uhr alternativ auch noch bewerkstelligen kann. Und um diesen Wahnsinn zu beenden, solltest Du Dich endlich für einen µC, für die endgültig gewünschten Funktionen und auf eine konkrete Anzeige festlegen. Solange Du Dir nicht selber im Klaren über diese Punkte bist, wird das hier alles endlose 'Schwätzerei'. Alexander H. schrieb: > Leider sind die im Netz präsentierten Uhren öfters > fehlerbehaftet, laufen zu schnell/zu langsam (wie man manchmal auf Blogs > lesen kann). Schrottikowsky muß man ja nicht nachbauen. Eine Ganggenauigkeit < 1 ppm ist recht einfach eine von < 1 ppb etwas aufwendiger zu erreichen.
Frank E. schrieb: > Ich meine, diese Zellen sind extrem long-live und werden sicher nicht > auslaufen bzw. erst in Jahrzehnten. Das sind in der Regel Akkus, und bei einem 10€-Modul ist das sicherlich der billigste den man kaufen kann. Die laufen aber in der Regel nicht aus sondern tun es einfach nicht mehr, aber das Modul kommt in der Regel auch gut ohne klar, dauert der Kaltstart halt ewig. Die Stützzeit liegt eh in der Regel nur in der Größe von Tagen, d.h. das Modul muss beim Erststart sowieso erstmal alles neu laden. Ob das spezifische Modul es allerdings hinbekommt die Daten auch aus nur einem Sat zu laden und dann Zeit auszugeben muss man vmtl. testen.
Peter D. schrieb: > Alexander H. schrieb: >> Wenn möglich wollte ich >> den Atmega328 nehmen, da dann externe Ansteurungs ICs entfallen. > > Der hat aber nicht die nötigen 64 Ausgänge für 8 Digits. > Du brauchst also doch Schieberegister oder Multiplexer mit > Konstantstromausgängen. > Multiplexen ginge auch diskret (16 Transistoren + Hühnerfutter) und > Software (Timerinterrupt). Ich dachte man macht das Multiplexing normalerweise per Software (bei common anode/cathode LED). Dann benötigt man nur 7+ 8 Ausgänge. Der Atmega hat 23, also bleiben noch genug für Quarz usw.: https://embedded-lab.com/blog/lab-11-multiplexing-seven-segment-led-displays/
:
Bearbeitet durch User
Mi N. schrieb: > Eine Ganggenauigkeit < 1 ppm ist recht einfach hust ;) Na ja, wenn man zu besonderen Uhren-ICs greift oder in der Software die Gangungenauigkeiten ausgleicht. Fällt aber kaum noch unter einfach (finde ich). Und 0815-Quartze haben deutlich mehr Abweichung.
Mi N. schrieb: > Eine Ganggenauigkeit < 1 ppm ist recht einfach blablabla Wie kommst du auf so einen Blödsinn? Hast du überhaupt jemals von Temperaturstabilität und Alterung gehört? Oder gehts dir nur um die Messung, die du direkt nach dem Kauf mit einem Exemplar in deinem 20-25° Zimmerchen anstellst? Wobei ich bezweifle, dass du ein Zeitnormal besitzt, um überhaupt solch eine Messung durchführen zu können. Schmeiss hier nicht mit Worten um dich, von denen du nichts verstehst. Auf die 1ppb gehe ich der Höflichkeit halber einfach mal nicht ein.
Der TO wird sich mit der Frage "wie genau darfs denn sein?" noch länger auseinander setzen, denke ich. MEMS, Quarz, TCXO, OCXO oder Atomuhr? Die Dinger haben ungefähr alle gleich viele Pins. ;)
Alexander H. schrieb: > Mir würde aber ein genauer (Uhren-)Quarz zur Takterzeugung oder ein RTC > (teilweise störanfällig?) ausreichen. Eine RTC ist nicht störanfällig. Wo hast du den Blödsinn her? Der Vorteil einer RTC ist, daß sie aus einer kleinen Batterie/Akku/Goldcap auch noch tage/wochen/monatelang weiterläuft wenn das Gerät ausgeschaltet ist. Brauchst du erstmal nicht. > Die Ausgabe soll in HH-MM-SS erfolgen (ein 8 digit display). Für die Uhrzeit ist die Trennung mit Doppelpunkten der Normalfall. Ich hatte das nur vorgeschlagen, weil die achtstelligen Displays die man billig kaufen kann, keinen Doppelpunkt zwischen den Ziffern haben. Aber es wäre natürlich ein Anfang. Und das kannst du gleich verinnerlichen: die meisten µC Projekte fangen klein an. > Die Anzeige von Datum, evtl. Countdown und Stoppuhr wären natürlich auch > klasse. Ja, dann mach doch! Was hindert dich? > Leider sind die im Netz präsentierten Uhren öfters > fehlerbehaftet, laufen zu schnell/zu langsam (wie man manchmal auf Blogs > lesen kann). Na klar. Alle machen mal Programmierfehler. Wird dir auch passieren.
Ein RTC mit internem Quarz ist auch eine Idee. Damit ist man unabhängig von der äußeren Beschaltung. Z.B. der RX8010SJ ist recht günstig und mit 5ppm schon recht genau. Er braucht nur 160nA, mit einem 1F Goldcap läuft er Monate. Mit 1,27mm Pitch ist er noch gut zu löten.
Vor längerer Zeit einmal hatte ich mir die Genauigkeit von (billigen) Quarzen aus China ausgemessen gehabt und war (negativ) erstaunt (wenn man dem Hameg HM8021-3, alt aber gar nicht schlecht) glauben darf: Durchweg in der Charge (ich glaube es waren 20 Stck.) war der gröbste Ausreiser (den weiß ich noch) 16001.300 MHz (entspricht 81 ppm). Selbst mit unterschiedlichen Lastkapazitäten (für den Ausdruck Ziehkondensator wurde mir hier der Hintern versohlt) würde man den schwerlich auf genau 16 MHz ziehen können. 50 ppm entsprechen einer Gangungenauigkeit von 4,32 Sekunden am Tag (ergo ca. 2 Minuten im Monat), was den gängigen (miesen) Uhren so entspricht. Entweder arbeitet man hier mit einer hochgenauen Zeitbasis oder fügt in der Software einen Fehlerausgleich für die Gangungenauigkeit des Quarzes ein.
Christian schrieb: > Mi N. schrieb: >> Eine Ganggenauigkeit < 1 ppm ist recht einfach blablabla > > Wie kommst du auf so einen Blödsinn? Hast du überhaupt jemals von > Temperaturstabilität und Alterung gehört? Oder gehts dir nur um die > Messung, die du direkt nach dem Kauf mit einem Exemplar in deinem 20-25° > Zimmerchen anstellst? Ein einfacher TCXO liefert das. Na gut, 2 - 3 Euro muß man schon investieren. > Schmeiss hier nicht mit Worten um dich, von denen du nichts verstehst. > > Auf die 1ppb gehe ich der Höflichkeit halber einfach mal nicht ein. Bleib mal ganz ruhig, Alter. Die Probleme, die Du mit dieser Stabilität vielleicht hast, haben andere längst gelöst. Bauanleitungen für passende Frequenzzähler findest Du übrigens bei mir.
Peter D. schrieb: > Z.B. der RX8010SJ ist recht günstig und mit 5ppm schon recht genau. ... kannte ich noch nicht und habe ich mir jetzt einmal bestellt. Danke für den Hinweis !
Beitrag #7782059 wurde vom Autor gelöscht.
So, auch wenn das wohl etwas "spät" im Thread jetzt ist, hat es mich doch "gepfupfert" gehabt, eine LED-Uhr aufzubauen (und witzigerweise habe ich festgestellt, dass ich eine 7-Segmentanzeigen-Uhr niemals "fertig" gemacht hatte, immer nur "BCD-Uhren"). Also: 7-Segment-Uhr mit ATmega328p die Hundertausendste! Auch wenn das in der Rubrik "Projecte & Code" wohl besser passen würde, poste ich das hier zum Thema, weil ich denke, dass es 7-Segmentuhren wohl irgendwo zu Hauf geben wird und "meine" Uhr ist dann wohl die 10.001 ... oder auch 100.001 (wie auch immer). Ich habe jetzt mal im Schnelldurchgang versucht, die Uhr (und die Funktion) zu beschreiben, damit der TO hier evtl. doch etwas damit anfangen kann, auch wenn "meine" Uhr wohl nicht der klassischen ersten Uhr entspricht, die man so programmiert. Diese Uhr hier hat eine Kalibrierfunktion, um die Ungenauigkeit des Uhrenquarzes (ich verwende einen 32.768 kHz Quarz und leite den Uhrentakt NICHT vom Takt des Systems ab) auszugleichen. Die Uhr hier kann: - auch Datum anzeigen - Helligkeit der Anzeige variieren - den Anzeigemodus wechseln (Uhrzeit permanent, Uhrzeit / Datum im Wechsel) Alexander H. schrieb: > Wahnsinn, wie man eine Uhr alternativ auch noch bewerkstelligen kann. > Mir würde aber ein genauer (Uhren-)Quarz zur Takterzeugung oder ein RTC > (teilweise störanfällig?) ausreichen. > Die Ausgabe soll in HH-MM-SS erfolgen (ein 8 digit display). > Die Anzeige von Datum, evtl. Countdown und Stoppuhr wären natürlich auch > klasse. Leider sind die im Netz präsentierten Uhren öfters > fehlerbehaftet, laufen zu schnell/zu langsam (wie man manchmal auf Blogs > lesen kann). > > Ob Attiny26 oder Atmega328 ist eigentlich egal. Wenn möglich wollte ich > den Atmega328 nehmen, da dann externe Ansteurungs ICs entfallen. Mit "Ansteuerung-IC" wie bspw. TM1637 wäre es weniger Aufwand als so. :-) um es gaaaaaanz richtig zu machen (hier wird es nicht so wirklich gerne gesehen, wenn treibende Multiplex-Pins direkt an einen Controller OHNE Transistoren gehängt wird, habe ich das jetzt mal wirklich hochklassisch mit Transistoren für Digits und Segmente gemacht). Wenn du hier noch mitliest: Schau es dir an (und den Code auch).
... und wieder einmal... hat sich ein Fehler eingeschlichen (sehe ich gerade)! Der Kommentar zu ISR (TIMER1_COMPA_vect) mpx_6digit.c ist falsch. Dieser stammt noch aus einem Frequenzzählerprojekt. Die Funktion des Interruptvektors hingegen ist jedoch korrekt. Er macht nichts anderes, als den Framebuffer der Anzeige anzuzeigen (was auch sonst).
Hallo Ralph, das ist ja der Wahnsinn. Super Projekt! Ich bin seit vorgestern dabei, alles durchzulesen und versuche, nach und nach zu verstehen. Die Erläuterungen/Dokumentation die du gemacht hast ist genial. Genau das fehlt eigentlich immer(wahrscheinlich weil die Ersteller oft keine Anfänger mehr sind.) Ich hab mittlerweile auch ein Nachbauprojekt für die Weihnachtszeit gefunden, das scheinbar relativ gelingsicher dokumentiert ist. Beitrag "Schaltplan für IW-18 Uhr mit zwei UDN2981" https://www.makerconnect.de/index.php?threads/iw-18-mit-zwei-udn2981.1835/ Seit Jahren liegt bei mir eine IV-18 VFD Röhre rum und hier hat jemand mit Atmega16 und zwei UDN2981 (oder TD62783AP) eine schöne Uhr gebaut (inkl. Datum, Jahr, Wochentag). Auf Youtube sieht man eine alte und neue Version (Atmega8). http://www.youtube.com/watch?v=5QCuKnXRlOg https://m.youtube.com/watch?v=9xnal4g3nq4 Das hexfile ist wohl für die ältere Version mit Mega16. Ich frag mich, ob es (ohne großen Aufwand) möglich wäre, die firmware der Uhr auf Atmega8 umzuschreiben, denn der Ersteller hat im Thread auch den Bascom Code eingestellt. Müssten die Inputs/Outputs nicht in diesem Bascom file definiert sein, d.h. man könnte sie für Atmega8 passend ändern und dann neu als .hex kompilieren? Oder ist das viel schwieriger als ich denke?🤔 Beim Atmega16 wären immerhin 11 I/Os unbeschaltet, beim Atmega8 nur drei, wenn ich das richtig sehe.
:
Bearbeitet durch User
Was braucht man denn alles, um aus dem Bascomcode eine .hex-Datei zu kompilieren? Ganz am Anfang sehe ich $regfile = "m16def.dat" Dort müssten doch die I/Os festgelegt sein, oder? Ist das eine weitere Datei, die benötigt wird?
Alexander H. schrieb: > Ich hab mittlerweile auch ein Nachbauprojekt für die Weihnachtszeit > gefunden, das scheinbar relativ gelingsicher dokumentiert ist. Bitte mache es nicht! Die Beiträge sind von 2011 mit exotischen Gurkenteilen. Du hast hier einige Empfehlungen bekommen, die allesamt besser umzusetzen sind.
Hm, irgendwie beschleicht mich das Gefühl (eigentlich schon etwas mit dem Eröffnungsthread), dass der TO - sagen wir es nett - etwas Schabernack mit uns treibt: Hier will er eine Uhr mit ATtiny26 aufbauen, weil er viele ATtiny26 hat, Zitat: Alexander H. schrieb: > In der Bastelkiste liegen mehrere Attiny26 und pinmässig (und > grundsätzlich) dürfte sich der ATTiny auch für eine Uhr eignen, oder? In einem Nachbarthread möchte er welche kaufen: Beitrag "Suche Attiny26L-8SU (NOS)" Wie dem auch sei. Alexander H. schrieb: > Die Erläuterungen/Dokumentation die du gemacht hast ist genial. Genau > das fehlt eigentlich immer(wahrscheinlich weil die Ersteller oft keine > Anfänger mehr sind.) :-) danke für die Blumen, aber "genial" ist anderst. Die Erläuterungen sind aus einzelnen Projekten zusammengeschrieben und leider finde ich die Original Officedateien nicht mehr, aus denen ich PDF erstellt hatte. Andererseits mag ich (aus welchen Gründen auch immer) reine Textdateien lieber, weil ich die dann auch als Kommentar in die Quelltexte einfügen kann. Normalerweise schreibe ich zu den einzelnen Funktionen in meinen Quelltexten auch gleich die Funktion als "Dokumentation" mit rein, von daher ist es sicher keine schlechte Idee, die Quelltexte anzusehen. Alexander H. schrieb: > Ich hab mittlerweile auch ein Nachbauprojekt für die Weihnachtszeit > gefunden, das scheinbar relativ gelingsicher dokumentiert ist. > > Beitrag "Schaltplan für IW-18 Uhr mit zwei UDN2981" > > https://www.makerconnect.de/index.php?threads/iw-18-mit-zwei-udn2981.1835/ > > Seit Jahren liegt bei mir eine IV-18 VFD Röhre Du hast wirklich eine solche Röhre rumliegen? Ich habe auch noch eine (mehrere hatte ich vor Jahren schon entsorgt, genauso wie ein paar VFD Displays ... und ärgere mich heute über das Entsorgen). Mit einer reinen Röhre (ohne die Controller und ohne die hohe Spannungserzeugung von ca.30V) ist so ein Nachbau sicherlich nicht gelingsicher nachbaubar. Alleine aus 5V mittels eines MC34063 etwa 25V zu produzieren ist nicht so ganz so lustig (an die "Nörgler": ich weiß dass das funktioniert). Alexander H. schrieb: > d.h. man könnte sie für Atmega8 passend ändern und dann neu als .hex > kompilieren? > Oder ist das viel schwieriger als ich denke? Erst wolltest du das mit einem ATtiny26 machen, dann hattest du dich auf einen ATmega328 festgelegt und jetzt möchtest du das mit dem wirklich sehr alten ATmega8 machen (der, wenn man den kaufen muß, deutlich teurer als ein 328er ist). Zudem: wolltest du nicht das "Uhrwerk" im Controller bewerkstelligen. Das von dir verlinkte Projekt verwendet einen DS1307 als RTC Uhrenbaustein, für den gelinde gesagt einiges gemacht werden muß (Hardware- und Softwareseitig) bis das Teil genau geht. Ein DS3231 funktioniert hier deutlich einfacher und läuft genauer, bei gleichen Steuerbefehlen. Wenn es zudem keine Single-Chiplösung mit nur dem Controller als einzigem IC sein muß, kannst du dir aus dem Projekt Anleihen nehmen, um diskrete Transistoren durch Transistorarray zu ersetzen. Hier der UDN2981 als High-Side-Schalter für die Digits und einen ULN2804 als Low-Side-Schalter für die Segmente. Alexander H. schrieb: > Was braucht man denn alles, um aus dem Bascomcode eine .hex-Datei zu > kompilieren? Vor allen Dingen benötigt es den Bascom-Compiler (der -ich habe gerade nachgesehen- sein letztes Update in 2016 hatte), der nicht kostenfrei ist und es nur eine kostenfrei Demo-Version mit einer Codegrößenbeschränkung von 4kByte gibt. Der Full-Version Compiler kostet über 100€ !!! (im "Arduino-Zeitalter" wundert es mich, dass so etwas zu so einem Preis noch verkauft werden kann). Alexander H. schrieb: > $regfile = "m16def.dat" > Dort müssten doch die I/Os festgelegt sein, oder? Ist das eine weitere > Datei, die benötigt wird? Natürlich ist das eine weitere Datei, die benötigt wird und die von Bascom zur Verfügung gestellt wird. Alexander H. schrieb: > Müssten die Inputs/Outputs nicht in diesem Bascom file definiert sein, > d.h. man könnte sie für Atmega8 passend ändern und dann neu als .hex > kompilieren? > Oder ist das viel schwieriger als ich denke? Für einen "Nicht-Anfänger" dürfte das nicht viel schwieriger sein, für Dich glaube ich jedoch schon. Versuche das ganze doch in C (oder auch mit C++ und mit Arduino) zu machen, da gibt es - wenn es dir ernst ist - aus dem Netz deutlich mehr Unterstützung als mit Basic. Wenn dir die Anzahl der Transistoren und Widerstände in meiner "Uhrenschaltung" zu viel sind (mir sind es zu viele), dann denke doch noch einmal über Anzeigentreiber nach (deines Projektes wegen sortiere ich gerade meine Sourcen zu diversen Treibern und versuche die in eine einzige .h / .c Kombination zu bringen). Beitrag "TM1637, 4-stellige LED 7-Segmentanzeige mit AVR-GCC" Den Code aus obigem Link habe ich mittlerweile erweitert (eben auf 6-stellige Anzeige und das Lesen von gemultiplexten Tasten). Für dich zum Testen, Spielen und Ausprobieren wäre das hier nützlich (wohl aber nicht vor Weihnachten bei dir): https://www.ebay.de/itm/404308959588?_skw=tm1638&itmmeta=01JEAV5Z5A5XEGM5CAMMNDP6RP&hash=item5e22b12164:g:IKkAAOSwhBJkcv1W&itmprp=enc%3AAQAJAAAAwHoV3kP08IDx%2BKZ9MfhVJKnC91Ncub%2F5fubR4yGX2AxUe8nLbCHNlY67JMfY7L%2Bt44o7j9wELllPR9CLClWT%2FqCUqv1andzkqvgsVq%2BU8H0p%2B%2Fhsm6e8r2WHaTyXk5Ybgm9kamkF8pBCuzHJ08pkzQnN5PIBRxtCafUKY2gO33JpRZ0EYvW7o490JunragY%2FQcA%2F1yEvl8SiHq%2FNYzl4Sr9NOwzeI6SkJOF46QBKiJPhLySwfV2StFmcKkkgXbT6cQ%3D%3D%7Ctkp%3ABk9SR97yl9vyZA Wenn es Dir ernst ist mit Deinem Uhrenprojekt: Gutes gelingen.
Wußte ich es doch, dass ich das hier einmal eingestellt hatte: Code für TM1637 6-stellig mit Tasteneinlesen, wenn auch für ATtiny44: Beitrag "Siebensegment und Tasten ansteuern mit TM1651 \ TM1637"
Bevor ich mir überhaupt Teile für den Nachbau zulege, muss ich mir sicher sein, dass es funktioniert. Daher fand ich die IV-18 Uhr mit Mega16 und dem Transistorarray (TD62783AP als Treiber-IC) ziemlich gut. Exotisch (und ungünstig) aus heutiger Sicht ist wohl der Bascomcode. Ein weiteres, schön umgesetztes Projekt ist das hier: http://robocua.blogspot.com/2017/11/blog-post.html?m=1 Da hätte ich einen Atmega8(alle I/Os belegt) mit RTC (DS1307) und Thermometer (DS18B20), Alarm und Helligkeitsregelung. Dazu sind die Menüs noch richtig gut gemacht mit Scrollingeffekt. Man könnte aber ein Transistorray statt Einzeltransistoren verwenden.
:
Bearbeitet durch User
Alexander H. schrieb: > Exotisch (und ungünstig) aus > heutiger Sicht ist wohl der Bascomcode. Die Demo kommt mit "compiles up to 4kB binary code"... Vielleicht reicht's.
Ralph S. schrieb: > Alleine aus 5V mittels eines MC34063 etwa 25V > zu produzieren ist nicht so ganz so lustig (an die "Nörgler": ich weiß > dass das funktioniert). ist simpel und leicht möglich, mit in Reihe geschalteten SIM1 05/24 4-5 Stück für 96V-120V. Für so Kleinigkeiten macht man doch keine Experimente.
Alexander H. schrieb: > Da hätte ich einen Atmega8(alle I/Os belegt) mit RTC (DS1307) und > Thermometer (DS18B20) Wenn Du eine genaue Uhr haben möchtest, vergiß den RTC DS1307... ehrlich ... und verwende DS3231. Thermometer DS18B20 kann meine Uhr jetzt auch. Hm, ich glaube ich melde mich hier einmal ab, denn du machst immer wieder neue Baustellen auf! Lerne einfach, wie Mikrocontroller funktionieren, anstelle einfach stur etwas (auch die Hardware) nachbauen zu wollen, die Software einzusetzen (die du nicht verstehst). Grundsätzlich hätte ich dir angeboten gehabt (jetzt allerdings nicht mehr), dir eine Platine eines älteren Projektes von mir zu verwenden (das war mein Kosmos CP1 Clone hier), der einen 7-Segmentanzeigentreiber auf der Platine hat, eine USB2UART Bridge, mit der du dann das Teil sogar mit Arduino hättest programmieren können und insgesamt 11 Tasten und darauf habe ich jetzt auch eine Uhr am laufen. Bau Du deine Sachen und verwende Bascom (wenn du Glück hast, passt dein Code in die 4 kByte Speicher die der Demo-Compiler kann). Gruß, JJ
Ralph S. schrieb: > Wenn Du eine genaue Uhr haben möchtest, vergiß den RTC DS1307... ehrlich > ... und verwende DS3231. > > Thermometer DS18B20 kann meine Uhr jetzt auch +1
„ Wenn Du eine genaue Uhr haben möchtest, vergiß den RTC DS1307... ehrlich ... und verwende DS3231.“ Ja, ich bin mittlerweile auch darauf gekommen, dass der DS3231 am besten funktioniert. Die ursprüngliche Version der verlinkten Uhr läuft auch mit DS3231 statt DS1307.😀👍 Bin gerade dabei, ein eigenes Layout zu erstellen und mir fiel auf, dass man bei VFDs immer wieder über unterschiedliche Treiber ICs diskutiert. Es gibt ja sink/source (highside/lowside) zB. TD62083AFN oder TD62783AP (Darlington-/Transistorarrays) mit und ohne Diode an den Ausgängen. Dann gibts spezielle VFD Treiber wie den UDN6118 mit pull-down Widerständen an den Ausgängen. Aber zu funktionieren scheint fast alles. Was benötige ich in meinem Fall: http://robocua.blogspot.com/2017/11/blog-post.html?m=1 Einen sink- oder einen source Treiber? Wäre der UDN6118 ein guter Kandidat? Kann jemand aufklären, was technisch besser geeignet ist, bzw. welche Effekte auftreten könnten (ghosting von nicht angeschalteten Ziffern evtl.?)?
:
Bearbeitet durch User
Alexander H. schrieb: > Was benötige ich in meinem Fall: > ... > Einen sink- oder einen source Treiber? Du bist ein sehr spezieller Fall, darum ist es egal :-(
Um meine Frage zu konkretisieren: Ich habe 2xUDN6118 da, die ich gerne statt den 17× BC857 nehmen würde. Geht das einfach so? Die 2x UDN6118 reichen nicht aus. Daher muss ich für das neunte Gitter einen (Einzel-)Transistor nehmen. Die Variante mit BC857 ist schön kompakt, vorallem im Gegensatz zum Aufwand, einen Kanal des UDN6118 diskret aufzubauen. Es gibt aber tausend Varianten, wenn man danach googelt. Wie würdet ihr das machen? Kann mir einer erklären, was die Z- Diode (5,1V) zwischen der Mittelanzapfung der Heizspannung und der Gitter-/Anodenspannung bewirkt?
... und woher weißt du, welchen Übertrager Trafo du dafür brauchst... und wieso der Schwingungssignale erzeugt? Ah, okay, bau halt einfach irgendwelche Trafos ein, wird schon funktionieren!
Alexander H. schrieb: > Diode (5,1V) zwischen der Mittelanzapfung der Heizspannung und der > Gitter-/Anodenspannung bewirkt? Das VFD ist eine Röhre, bei der der Heizfaden gleichzeitig die Funktion der Kathode übernimmt. Wie immer bei einer Röhre muss die Kathode negativ vorgespannt werden, damit die emittierten Elektronen dann vom positiven Grid und Segment angezogen werden und das Segment leuchten lassen. Im Vergleich mit der Röhre ist also das Grid das Steuergitter und das Segment die Anode.
:
Bearbeitet durch User
Alexander H. schrieb: > Kann mir einer erklären, was die Z- > Diode (5,1V) zwischen der Mittelanzapfung der Heizspannung und der > Gitter-/Anodenspannung bewirkt? Die soll dafür sorgen, daß die Elektroden ausgeschaltet leicht negativ sind, d.h. sicher sperren. Ansonsten könnte Ghosting auftreten.
Ralph S. schrieb: > Bau Du deine Sachen und verwende Bascom (wenn du Glück hast, passt dein > Code in die 4 kByte Speicher die der Demo-Compiler kann). Bascom hat für eine Uhr incl. DCF77 alles dabei und kann schnelle Erfolge liefern, die Uhr sollte in der Demo Version laufen. Benutze ein Breadboard und fang klein an: - Hello world - Hello World mit Taster Abfrage - 7-Segmant Anzeige zählen lassen - ... - Uhr mit vier Stellen - ... Je höher der Anspruch beim Enstieg desto größer kann der Frust sein und für ein Ende der Aktivitäten bezüglich µC sorgen. Was nützt es dem TO wenn es nicht funktioniert und er nicht feststellen kann ob er ein Hardware oder Software Problem hat?
Andrea B. schrieb: > Bascom hat für eine Uhr incl. DCF77 alles dabei und kann schnelle > Erfolge liefern, die Uhr sollte in der Demo Version laufen. Was nutzt es einem Anfänger, einfach einen Code einzubinden und laufen zu lassen ohne diesen zu verstehen? Wenn auch DCF77 nicht so ganz so schwierig ist, (je nach Einstiegshöhe) ist es eben für einen Anfänger eben doch "undurchsichtig". Ursprünglich ging es hier einmal um eine Uhr mit ATtiny und 7-Segment LED Anzeigen. Der Controller wurde gewechselt, die Anzeige wurde gewechselt. Andrea B. schrieb: > Je höher der Anspruch beim Enstieg desto größer kann der Frust sein und > für ein Ende der Aktivitäten bezüglich µC sorgen. Deswegen steigt man ja auch gleich mit DCF77 ein !!! Andrea B. schrieb: > Was nützt es dem TO wenn es nicht funktioniert und er nicht feststellen > kann ob er ein Hardware oder Software Problem hat? Deswegen verwendet man DCF77 !!! Andrea B. schrieb: > Benutze ein Breadboard und fang klein an: > - Hello world > - Hello World mit Taster Abfrage > - 7-Segmant Anzeige zählen lassen > - ... > - Uhr mit vier Stellen > - ... Das stimmt komplett und es ist vollkommen Wurst, mit welcher Sprache man das macht. Aber der TO will das eben nicht. Momentan ist er in seine VFD-Röhre verliebt ! Wie war das noch einmal mit dem Fehler in Hardware oder Software ??? ---------------------------------------------------------------------- Ich finde diesen Thread hier zum Mitlesen dennoch spannend, weil es hoch interessant ist, was denn alles zum Thema "gemeint" wird, wohin alles abschweift ... und ob der TO sich noch einmal meldet ! (am spannensden).
Bin grad am Locherasteraufbau. Eine Frage zum Thema Multiplexing mit PNP/NPN hab ich noch. Die IV-18 Schaltung schaltet die -21V für Gitter/Segmente mit BC557 (PNP). Wenn ich NPN Transistorrays (wie UDN6118) nehmen will, müsste ich dann zwingend die Signale in Software invertieren, oder geht das auch anders (Anoden/ Gitter umpolen?) bzw. gibts für den Fall irgendeinen Trick? Oder würde das Ganze einfach so laufen, ohne Änderung? Die Invertierung mittels Einzeltransistoren scheidet natürlich aus. Die Spannungserzeugung (AC Heizung und 20V DC) hab ich übrigens mit LM9022 (LM4871) gemacht, so wie im Datenblatt. Läuft gut.👍🙂
:
Bearbeitet durch User
Herjeh, ich werde mir selbst untreu und schreibe hier jetzt doch noch einmal etwas zum Thema (Erklärung): Das nennt man bei mir wohl "Ausbilderkrankheit". Zu allererst einmal so die Frage (vorrausgesetzt Du hälst uns hier alle nicht zum Narren): Hast du diese Teile so einfach rumliegen? Ich weiß nicht, wann ich das letzte mal einen UDN6118 in freier Wildbahn gesehen hatte und wann ich einen solchigen benötigt habe. Wenn ich das richtig erinnere, dann hatte ich den nur für Reparaturzwecke in der Hand. Wie dem auch sei: Du solltest Dir vielleicht einmal grundlegende Dinge zur Elektronik aneignen, denn Transistoren und Transistorarrays (und wie sie funktionieren) gehört hier zum Handwerkszeug (Bipolare und Unipolare). Alexander H. schrieb: > Wenn ich NPN Transistorrays (wie UDN6118) nehmen will, müsste ich dann > zwingend die Signale in Software invertieren, oder geht das auch anders > (Anoden/ Gitter umpolen?) bzw. gibts für den Fall irgendeinen Trick? > Oder würde das Ganze einfach so laufen, ohne Änderung? Ich beziehe mich im Folgenden auf den Schaltplan der Röhre aus Deinem Posting: Beitrag "Re: LED-Uhr mit Attiny26" Um meine Erklärungen vorwegzunehmen: Ich glaube nicht (d.h. ich weiß es nicht), dass du die PNP Transistoren durch einen UDN6118 an dieser Stelle ersetzen kannst, wenn ja, muß der Pegel in Software geändert werden. Vorneweg: - alle einzelnen Segmente der Röhre liegen auf ca. -20V - mit den einzelnen PNP-Transistoren können +5V auf jedes einzelne Segment gegeben werden. Wann wird nun ein PNP-Transistor leitend? Dann, wenn ein Strom aus der Basis herausfließen kann (oder auch technisch ausgedrückt ein negativer Strom in die Basis fließt). Typischerweise wird ein solcher Strom gegen Ground (oder auch gegen eine negative Spannung) fließen. D.h. dass ein steuernder Controller einen 0-Pegel hat, der Basisstrom des PNP in den Controllereingang fließt, Controller schaltet somit Lo-Side. Ergo: es wird eine 0 benötigt um deinen PNP zu schalten, damit der +5V an ein einzelnes Segment anlegen kann. Was macht nun der UDN6118? Wieder vorneweg: er benötigt einen High-Pegel um eine Spannung an seinen Ausgang zu legen (könnte man nun einfach so stehen lassen und das hätte man aus dem Datenblatt so auch herauslesen können). Ein einziger Blick auf die Innenbeschaltung (nennt sich im Datenblatt "PARTIAL SCHEMATIC - ONE DRIVER" ) hätte das auch gezeigt. Ich habe Dir das mal herauskopiert und die Innenbeschaltung bearbeitet (siehe Anhang). Grundsätzlich: Die minimale Betriebsspannung des UDN6118 beträgt 5V !!! Du bewegst dich hier also an der untersten Grenze dessen was Du machen möchtest. Zur Funktionsweise: T4 und T5 bilden eine Darlingtonschaltung in Kollektorschaltung. Hier gilt, dass eine U_ce von 2 * U_be nicht unterschritten werden kann. D.h. dass du hier mindestens einen Spannungsabfall von 1V, eher 1,3V bis 1,4V hast. Um diese Spannung wird die Ausgangsspannung geringer als die Betriebsspannung sein. Sieh dir das bild an und du wirst sehen: Bei einem Eingangspegel von 0V sind alle Transistoren gesperrt und der Ausgangspegel ist 0V. Das ist dann hier auch die Crux bei der ich mir nicht sicher bin ob ein UDN6118 in der von dir gezeigten Schaltung als Ersatz für die PNP-Transistoren funktioniert. Begründung: Schaust du dir das Innenschaltbild an, so liegt der Ausgang nun über einen 125k Widerstand gegen Masse. Das dürfte reichen um das einzelne Segement anzusteuern, welches über einen 300k ansonsten auf -20V liegt. Du möchtest hier allerdings entweder +5V oder -21V haben !!!! Legst du an den Eingang des UDN6118 einen High-Pegel (lt. Datenblatt ist die "Input ON Voltage" von 2,4V .. 15V gegeben) so wird T2 leitend. T1 begrenzt die Basisspannung von T2. Dadurch dass nun T2 leitend ist, kann der Basisstrom von T3 über einen Widerstand, C-E Strecke T2 und R_e abfließend und ist somit leitend und versorgt die Darlingtonkombination von T4 / T5 mit einem Basisstrom, womit dieser auch leitend wird. Schau dir das Bild hier im Anhang an und probiere eine einfache Simulation im Falstad-Online Simulator: https://www.falstad.com/circuit/circuitjs.html?ctz=CQAgjCAMB0l3BWcMBMcUHYMGZIA4UA2ATmIxAUgoqoQFMBaMMAKABcQ9jCQUEfiKPL35RwIBjATZpGPFwAsWBMTDyo0BVoWFsKHbkJwMC5FQAmdAGYBDAK4AbNu057eCqnkKn9VKhElYBCUcHC8EDDBcYmEYBTxIIwQwfmY8OTkkMDgQS1tHZwB3Tm8RHnkqPh5IFmKvH30QQWEURpri5t5Gzt8oWqahLtNOsCM+jhweVtM5BtMqJgk4hWx5bIxiJQVpVVNAhRjCYLw1KNGMSAhsi2t7J37Z909Rp77ix7RhR9G-FgAnTgvXonHi4ea8C5wfog154Ny9GoAiogMGcBIowixcCUKF1F6o5Go9poqgE9FVN4DFoYFBUjGxaHk0RcKaiYnfMYjMbEwmYunYPmI-l8zpaLFgPjwfqdAXCa7CWV9AGTIYgFU-MS4KXvAXgMYc37K3XTNW6vR+EAeKETSCmbC6lX26riBjYaAyYgIOHYZhyIRKbAaA7YGICwg07ZgGK2sy5W4Ff6m0F4Ga6sWanHstPxNUpy05mo2u158O01bggJxYghuGEUuR6PzaD8LiCNLcSMpWN5O5FNUx8tJlF5rPJ1OghC04ml+kgGdOynzh0D3XTmmWnIz9Nr2nplXb-pLniERoLoUnu26i-5rFa3FzxrprcFxPBS-H0+rsxQgAec7hlpqP2EAKCgIHgKYAAqrB-iYoIhmqpTYKBloQSAkEoCwsHcF0zwNIGphgFB2BYSUgZgYGay8C8hFQQopHVuQfDCJ6SBEOBRHoQgDy6hqb56r8ABKFBaAJFASmJFoeNQFpSCwwn8QuyRll+VDSUgsnNiwADmQ57mmpS-DqY65sW8wPHm6aii+AAOpnDjMlk5oG-jfvAxLWXKcDCAednyrO-npi54jXO5NSwTkKxfEBWgcaYgl0Ien48PwpIjiwdmpQ5FBjEFYhXGF95ZU+j4vn+hAvMwxBNJO4CtKhjQAKoACIAHIVWoAA6ADOACSAB2-V0P1ABGdDdQAxgAFjYTh2P12ksKs+YgAAYhAFpoBIECNT1A02XYzjLSsa0bdQW2LAAQnQbB-AAlnQI3dd1Nk2IN82LUAA Dort kannst du auf der rechten Seite die Eingangsspannung und die Input Voltage mit den Schiebereglern variieren und sehen was passiert!
Alexander H. schrieb: > Eine Frage zum Thema Multiplexing mit PNP/NPN hab ich noch. > Die IV-18 Schaltung schaltet die -21V für Gitter/Segmente mit BC557 > (PNP). Nicht minus 21V. Plus 21V. Den Anhang im komischen Maker-Forum kann ich nicht sehen. Aber wenn überhaupt, dann liegt die Glühkathode auf -21V und die Gitter/Anoden werden von den Transistoren auf GND bzw. wohl eher +5V geschaltet und von Pulldown-Widerständen auf -21V gezogen. > Wenn ich NPN Transistorrays (wie UDN6118) nehmen will, müsste ich dann > zwingend die Signale in Software invertieren, oder geht das auch anders Das geht gar nicht. Damit die Anoden leuchten, muß Strom in sie hinein fließen und in die Gitter auch. Das Netz sagt für die IW-18 ca. 11mA pro Gitter und 8mA für alle 7 Segmente. Wenn die Anoden aus sind fließt hingegen praktisch kein Strom (auch nicht in das Gitter). Deswegen ist nur PNP + Pulldown praktisch verwendbar. Im Prinzip ginge auch NPN + Pullup, aber dann müßte man die Widerstände viel niederohmiger machen und würde mit einer Heizung enden. Warum versuchst du auf Teufel komm raus eine Uhr mit esoterischen Bauelementen wie einem VFD zu bauen? Wenn du das willst, dann geh auch den ganzen Weg und nimm die richtigen Treiber dafür!
Nachtrag: Als Ersatz für die "unteren" PNP in deiner Schaltung VT13 bis VT20, die die Digits von GR1 bis GR9 ansteuern, wird der UDN6118 wohl funktionieren (allerdings auch hier mit einer softwareseitigen Invertierung des Steuersignals)
Axel S. schrieb: > Warum versuchst du auf Teufel komm raus eine Uhr mit esoterischen > Bauelementen wie einem VFD zu bauen? Weil er scheinbar diese Röhre liebt !
Axel S. schrieb: > Nicht minus 21V. Plus 21V. Den Anhang im komischen Maker-Forum kann > ich nicht sehen. Aber wenn überhaupt, dann liegt die Glühkathode auf > -21V und die Gitter/Anoden werden von den Transistoren auf GND bzw. wohl > eher +5V geschaltet und von Pulldown-Widerständen auf -21V gezogen. ganz genau das. Bei Verwendung mit UDN6118 wird das jedoch verhindert und mit 125k Widerständen nur auf 0V gezogen.
Axel S. schrieb: > Wenn du das willst, dann geh auch > den ganzen Weg und nimm die richtigen Treiber dafür! Vor allen Dingen: Wenn man davon ausgeht, dass die Schaltung so wie er sie angegeben hat auch funktioniert (mit diskreten Transistoren), warum müssen die - um es mit Deinen Worten zu sagen - "auf Teufel komm raus" nun durch einen - ungeeigneten - Treiber ersetzt werden. Bei dem ursprünglichen Vorhaben wollte er für eine LED-Anzeige partout keine Treiberbausteine verwenden. Jetzt müssen es partout welche sein !
Die UDN6118 stammen von Ebay und waren ursprünglich auch mal für die IV-18 gedacht. Verbaut waren sie wohl früher oft in Displays von Pinball/Flipperautomaten. Richtige Treiber ICs mit serieller Schnittstelle (die meinte ich) sind das ja auch nicht, wie einige Maxim ICs. Also muss ich per Software invertieren, sonst bekäme ich quasi ein umgekehrtes Bild. Die original Uhr ist hier zu sehen: https://radiokot.ru/circuit/digital/home/215/ Ganz unten sind auch Software (hex und Quellcode (codevisionAVR compiler) angefügt. Eigentlich dürfte die Invertierung nicht viel Aufwand sein (wenn man weiß, wo man ansetzen muss🙂), oder? Vielleicht benutzt hier jemand cvavr und könnte mal in den Quellcode schauen. Den Quellcode kann man wohl auch nur mit dem jeweiligen Compiler öffen/editieren nehme ich an?
:
Bearbeitet durch User
Du kannst nicht lesen, und (schriftliches) hören auch nicht !!!! Und dann läßt du eine Salamitaktik heraus, bei der du nach und nach deine Quelle angibst (und hier dazu auch noch russisch). Also: Du hast schon wieder einmal den Controller gewechselt, jetzt soll es der alte ATmega8 sein (zumindest ist das der in der Originalschaltung). Hier ist anzumerken: Auch wenn der Mega328 fast alles mitmacht, was der M8 macht, so unterscheiden sie sich eben doch (und sei es nur in den Timerbezeichnungen). Der ATmega8 hat andere Fuse-Einstellungen als der Mega328 (wäre allerdings auch kein wirkliches Problem), der ATmega8 läuft in der Schaltung mit 8MHz internem Takt. Nächstes: Der verwendete Compiler ist ein C-Compiler, aber es ist nicht der AVR-GCC mit dem in aller Regel zumindest hier gearbeitet wird. Auch der Code nach AVR-GCC zu portieren ist noch machbar (allerdings glaube ich nicht von dir). Die Originalschaltung verwendet (wie von mir oben bereits empfohlen) einen DS3231 RTC-Chip. Für diesen hat der gute Russe jedoch weder den Quellcode für den Chip selbst mit in sein Archiv gepackt #include <ds1307.h> (der "schlechtere" DS1307 ist softwarekompatibel mit dem DS3231) noch für den I2C-Bus, der den DS3231 ansteuert : #include <i2c.h> Diese müßtest du dann selbst schreiben, oder dir irgendwoher zusammenkopieren und anpassen. Dasselbe gilt für seinen Temperatursensor DS18B20. Hier hat der Autor offenbar selbst einen Quellcode verwendet, der nicht von ihm ist, erkennbar am Schreibstil der Quelle und vor allem an der Dateiendung der Quelle *.hci. Die Quelle selbst für den Temperatursensor, die den Sensoransteuert - ein sogenannter One-Wire-Bus - hat er in seinem Archiv ebenfalls nicht mit eingepackt #include <1wire.h>. Der Quellcode selbst ist reiner ASCII-Text und kann mit jeder beliebigen IDE oder jedem beliebigen Texteditor bearbeitet werden. Sein Projekt selbst ist scheinbar ein Atmel Studio 11 Projekt, das er mit Microsofts Visual Studio erstellt hat. Nächstes: Der Autor verwendet einen 32-pol. ATmega8 im Gehäuse TQFP. Das ist SMD und den kannst du schwerlich auf einer Lochrasterplatine verlöten. Du kannst diesen auch nicht durch einen 28 pol. Chip ersetzen, weil bis auf einen einzigen Anschluß (ADC7) auch alle Pins des ATmega benötigt werden. Willst du also einen TQFP-Chip auf eine Adapterplatine löten und diesen dann auf eine Lochrasterplatine setzen? Zur Hardware: Ich war mir nicht sicher, ob ein UDN6118 die PNP Transistoren ersetzen kann (ich glaubte eher nicht) und wie Axel S. (a-za-z0-9) (besser als ich) anmerkte, wird das zumindest für die oberen PNP NICHT... in einzelnen Buchstagen : N --- I --- C --- H ---T funktionieren !!! Glaubst du wirklich, dass du diese Widrigkeiten alle aus dem Weg räumen kannst, wenn du nicht einmal weißt, wie Portpins softwaremäßig zu invertieren sind und von Elektronik du bestenfalls rudimentär etwas weißt ? Das gezeigte Projekt mit der Röhre kann in deinem Fall also nur als Anregung dienen, das ganze selbst zu machen (was glaube ich weniger Aufwand ist, als das bestehende Projekt an eigene Gegebenheiten anzupassen). Wenn du also unbedingt diese Röhrenuhr willst, dann setze dich mit der modifizierten Drosselspule die der Autor verwendet auseinander um die Spannungen die die Uhr benötigt zu erzeugen. Nehme das Sprint-Layout 6.0 und erzeuge daraus die nötigen Gerberfiles und schicke die zu JLCPCB, die werden dir für 5€ oder so die Platine fertigen und bestücke die Platine (so du SMD löten kannst). ------------------------------------------------------------------- Mann, Mann, Mann ------------------------------------------------------------------- Ich ärgere mich (über mich selbst), dass ich wieder geantwortet habe. lernresistenten Menschen sollte man nicht versuchen, etwas beizubringen!
Wenn man von nichts ne Ahnung hat, sollte man nicht auch noch komplizierte Hardware verwenden. Man weiß dann nicht, liegt der Fehler in der HW oder SW, also wie anfangen mit dem Debugging. LED-Anzeigen machen dagegen die Hardware schön unkompliziert. MAX7219 nehmen und fertig. Es geht auch gut der MM5450 für je 4 Digits. Er wird als einfaches Schieberegister angesprochen.
Peter D. schrieb: > LED-Anzeigen machen dagegen die Hardware schön unkompliziert. MAX7219 > nehmen und fertig. MAX7219 kann 8x8 LEDs. Für geforderte 6x8 LEDs geht auch ein TM1637. Den habe ich jetzt durch den Thread hier für ein Uhrenlötprojekt für Auszubildende verwendet. Allerdings (um das billig zu halten) mit einem STM8S003. TM1637 hat auch 2 Keyscan-Leitungen, mittels denen es dann möglich ist bis zu 16 Tasten abzufragen, sodass für die eigentliche Uhr und die Tasten zur Ansteuerung nur 2 Leitungen notwendig sind. Auf einer weiteren kann dann ein One-Wire-Bus für einen DS18B20 realisiert werden, und - wenn man das möchte - 2 weitere für ein I2C um einen DS3231 anzusprechen. Für all das zusammen, egal für welche MCU man das macht, ist die Einstiegshöhe dann schon etwas gestiegen. By the way: @Peter : war von dir nicht der Artikel https://www.mikrocontroller.net/articles/AVR_-_Die_genaue_Sekunde_/_RTC sehr lesenswert und ich bin am überlegen, wie ich auf einer 7-Segmentanzeige (ich habe so etwas wie ein Menu realisiert) einen Kalibrierwert für den Reloadwert eines Timers eingeben kann. Bisher habe ich - der Einfachheit halber - einfach einen Kalibrierwert pro Sekunde am Tag eingebbar gemacht. Wenn es gerade einen doofen Quarz hat, der x.5 Sekunden am Tag falsch geht bedarf es einer weiteren Kalibrierung. Werde ich sehen wie ich das lösen kann ( :-) damit ich auch einmal ein Uhrenprojekt zu Ende gebracht habe)
Dass das Original einen DS3231 verwendet hatte ich weiter oben schon mal geantwortet. Der 32 Pin Atmega sitzt bereits auf Lochraster (Pins mit Lackdraht herausgeführt). Das war nervig aber machbar.🙂 Wenn die UDN6118 definitiv nicht gehen, werd ich auf PNP umbauen. Bei meiner VFD Versorgung mit LM9022 (eigentlich ein „brigded mono power amplifier“, baugleich mit LM4871) stellt sich nur die Frage, wo ich dort meine Mittelanzapfung (im Bereich der Ladungspumpe?) habe, bzw. da ich wohl keine habe, müsste ich evtl. mittels Widerständen eine „künstliche Mittelanzapfung“ einfügen. Hat einer eine Idee zur Dimensionierung der Widerstände? Die Mittelanzapfung müsste ich bei der PNP Version beachten. Ich hab die VFD Versorgung genau nach Datenblatt aufgebaut (Application Fig. 1 + 2. kombiniert). So ganz verstanden hab ich die Ansteuerung mit PNP und nur 5V noch nicht. Ich dachte, dass ein VFD leuchtet, wenn zB. 5V AC Heizspannung und +20V am Gitter und Segment gleichzeitig anliegen (klappt im Testaufbau auch). (Die 20V hätte ich an Vbb der beiden UDN6118 geklemmt und dann mittels uC angesteuert (invertiert)). Warum genau würde der direkte Austausch von PNP durch UDN6118 bei den unteren (GR1-9, die für die Gitter) evtl. klappen und bei den oberen (Segmente) nicht?
:
Bearbeitet durch User
Alexander H. schrieb: > Warum genau würde der direkte > Austausch von PNP durch UDN6118 bei den unteren (GR1-9, die für die > Gitter) evtl. klappen und bei den oberen (Segmente) nicht? Weil !
Alexander H. schrieb: > Bei meiner VFD Versorgung mit LM9022 ... Ach guck, eine weitere Scheibe Salami. > LM4871) stellt sich nur die Frage, wo ich dort meine Mittelanzapfung (im > Bereich der Ladungspumpe?) habe, bzw. da ich wohl keine habe, müsste ich > evtl. mittels Widerständen eine „künstliche Mittelanzapfung“ einfügen. Die Mittenanzapfung brauchst du nicht. Der LM9022 legt die Enden des Filaments wechselweise auf GND/+5V (eigentlich eher 0.15V und 4.85V). Die Mitte liegt also immer bei 2.5V. Das mußt du bei der Dimensionierung der Versorgungsspannung für das VFD berücksichtigen. Es sind dann effektiv 2.5V weniger. ABER mit der Heizung (aka Filament aka Glühkathode) bezogen auf GND brauchen die Gitter/Anoden dann +20V (also effektiv +17.5V über der Entladungsstrecke). Und dann paßt auch der UDN6118 wieder. Nur die Steuersignale müssen dann im Vergleich zu PNP-Transistoren natürlich invertiert werden. UND die IW-18 braucht nur ca. 3V Heizspannung. Der LM9022 liefert aber ca. 4.7V. Kann schon zu viel sein. > So ganz verstanden hab ich die Ansteuerung mit PNP und nur 5V noch > nicht. > Ich dachte, dass ein VFD leuchtet, wenn zB. 5V AC Heizspannung und +20V > am Gitter und Segment gleichzeitig anliegen Es müssen ca. 3V (DC oder Effektivwert AC) an den Enden des Filaments anliegen, so daß selbiges ganz schwach dunkelrot glüht (sieht man nur im Dunklen, wenn man es im Hellen sieht ist es zuviel Heizstrom). Und dann müssen ca. 20V zwischen Anode/Gitter (Pluspol der 20V) und dem Filament (Minuspol der 20V) liegen. Dann leuchtet die Anode. Dem VFD ist dabei egal, ob es sich um +20V und GND handelt. Oder um +5V und -15V. Es "sieht" ja nur die Differenz. Klassisch nimmt man PNPs und einen 5V µC. Dann schalten die VFD-Anoden/Gitter zwischen +5V und -20V hin und her. Die Heizung legt man über die Z-Diode 4.7V auf ca. -15V. Alternativ kann man die Ansteuerung auch mit +20V und dem UDN6118 machen und die Heizung mit dem LM9022. Diese IC gab es aber zur Zeit der VFD noch gar nicht. Das sind schließlich Röhren und uralte Technik.
Ralph S. schrieb: > @Peter : war von dir nicht der Artikel war er, genau wie eine geniale DCF77 Routine en passant und Tastenentprellung bullet proof
Ralph S. schrieb: > Du hast schon wieder einmal den Controller gewechselt, jetzt soll es der > alte ATmega8 sein (zumindest ist das der in der Originalschaltung). Hier > ist anzumerken: Auch wenn der Mega328 fast alles mitmacht, was der M8 > macht, so unterscheiden sie sich eben doch (und sei es nur in den > Timerbezeichnungen). Wo wir dann wieder beim Arduino (als Hardware) wären. ... und am Ende beschäftigt er sich dann doch lieber damit, seine Klospülung instand zu setzen. Damit er die ganze Scheiße dann auch im Klo abspülen kann.
Frank O. schrieb: > Wo wir dann wieder beim Arduino (als Hardware) wären. stimmt so nicht, die Timer Entprellroutine habe ich auch schon auf einem ESP32 eingesetzt, man muß es nur erst mal verstehen dann kann man es locker portieren.
Joachim B. schrieb: > stimmt so nicht, Alexander H. schrieb: > Hallo Leute, > > ich bin absoluter Anfänger in Sachen Mikrocontroller. Zur Erinnerung!
Frank O. schrieb: > Zur Erinnerung! zitieren mußt du lernen, programmieren der TO. Frank O. schrieb: > Zur Erinnerung! Alexander H. schrieb: > Hat hier evtl. jemand gute Codebeispiele für eine Uhr mit Attiny26? lernen alles in kleine Schritte zu zerlegen: LED an/aus Printausgaben zum debuggen uvam hier gibt es jede Menge Codebeispiele und wie schon genannt Artikelseite
Frank O. schrieb: > Joachim, das haben wir ihm doch schon ganz zu Anfang geraten. deswegen ist meine Aussage nicht falsch! Mit dem ESP geht es ähnlich zum AVR, jedenfalls nicht soweit es nur dem AVR zuzuschreiben.
Axel S. schrieb: > Dem VFD ist dabei egal, ob es sich um +20V und GND handelt. Oder +9V für die russischen ICs. ciao gustav
Frank O. schrieb: > Natürlich ist deine Aussage nicht falsch. Habe ich auch nicht behauptet. ach? Joachim B. schrieb: > Frank O. schrieb: >> Wo wir dann wieder beim Arduino (als Hardware) wären. die war nun mal falsch, denn du beziehst dich auf AVR und meine Aussage. Es gibt zwar Arduino auch für AVR, aber die Beispiele von PeDa bezogen sich viel auf AVR und erst später auf C welches auch auf dem ESP kompiliert werden kann.
Ich bekomme leider keine Verbindung zum Atmega8. Kennt jemand hier die Standardeinstellungen für den Atmega8 und Atmel AVRISP MKII + AVRDude(baud rate, bit clock und alles, was sonst noch relevant ist)? Nutze die AVRDude GUI (avrdudess). Vielleicht liegt es an einem Pullup von RST auf +5V. Notfalls teste ich einen Atmega8 ohne Beschaltung, falls es mit Schaltung nicht läuft.
Alexander H. schrieb: > relevant ISP Takt sollte bei fabrikneuen Chips unter 1MHz/4 eingestellt sein (siehe Datenblatt)
Kommandozeile: avrdude -c avrispmkII -p m8 -P usb -vv -B 20 Dann solltest du eine Verbindung sehen. Parameter -B 20 schränkt den Takt des ISP sehr ein, so dass ein eventueller Flashvorgang langsam ist. Grund: Fabrikneuer Chip läuft mit 1 MHz internem Takt. Als erstes sollten also die Fuses für einen angeschlossenen Quarz eingestellt werden. Vorsicht: werden die Fuses geändert und man hat keinen Quarz oder externen Taktgeber angeschlossen, ist ein Zugriff auf den Chip mittels ISP nicht mehr möglich (dann MUSS ein Quarz angeschlossen werden).
Joachim B. schrieb: > denn du beziehst dich auf AVR und meine Aussage. Joachim, wenn du immer noch ein Problem damit hast, dann lies bitte, was ich eingangs geschrieben hatte. Sinngemäß: Statt einen Tiny, dann doch ein Arduino Uno oder Nano, damit der Anfang auch sicher klappt. Ich hatte ESP nicht genannt und auch nichts dagegen oder dafür. Auf diesen Beitrag bezog ich micht, als ich schrieb: "Womit wir wieder beim Arduino sind!" Frank O. schrieb: > von > > Frank O. > (frank_o) > > 25.11.2024 09:18 Wenn du jetzt weiter Haare spalten willst, wo schon lang nichts mehr wächst, kannst du das machen, aber ich mache da halt nicht mit.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.