klok van 4 electro-mechanisch 7segment display's
klok van 4 electro-mechanisch 7segment display's
Beste Forumlezers,
Ik probeer een 7segment display van de volgende fabrikant aan te sturen:
https://flip-digits.com/
De 'attachment' is een plaatje van mijn breadboard, ik heb 1 spoel getekend, maar er zijn er 7 (per display)
Linker shift-register stuurt een 0 als het segment verborgen moet worden en het rechter
shift-register dan een 1.
bijv voor een 8 wordt dit 0000000x 1111111x (0x00FE)
Het werkte voor een paar seconden. Het rechter exemplaar van de darlington array is/was kapot. 2 pootjes geven niets door, en ic wordt heel heet.
Enig idee wat ik fout doe?
(het is waarschijnlijk wel duidelijk, maar ik ben een absolute beginner)
Met vriendelijke groet,
Han Smolders
Ik probeer een 7segment display van de volgende fabrikant aan te sturen:
https://flip-digits.com/
De 'attachment' is een plaatje van mijn breadboard, ik heb 1 spoel getekend, maar er zijn er 7 (per display)
Linker shift-register stuurt een 0 als het segment verborgen moet worden en het rechter
shift-register dan een 1.
bijv voor een 8 wordt dit 0000000x 1111111x (0x00FE)
Het werkte voor een paar seconden. Het rechter exemplaar van de darlington array is/was kapot. 2 pootjes geven niets door, en ic wordt heel heet.
Enig idee wat ik fout doe?
(het is waarschijnlijk wel duidelijk, maar ik ben een absolute beginner)
Met vriendelijke groet,
Han Smolders
- Bijlagen
-
- 7SegmentTest_bb.pdf
- Fritzing
- (909.97 KiB) 163 keer gedownload
beste smd_lover,
De aansturing is vanaf een arduino (wemos d1 mini):
de puls is 75 millisecondes.
Met vriendelijke groet,
Han Smolders
De aansturing is vanaf een arduino (wemos d1 mini):
de puls is 75 millisecondes.
Code: Selecteer alles
#include <Arduino>
int DS_pin = D5;
int STCP_pin = D3;
int SHCP_pin = D2;
int dec_digits [11] {0x807E, 0xF20C, 0x48B6, 0x609E, 0x32CC,0x24DA, 0x04FA, 0xF00E, 0x00FE, 0x20DE, 0xFE00};
void setup() {
pinMode(DS_pin, OUTPUT);
pinMode(STCP_pin, OUTPUT);
pinMode(SHCP_pin, OUTPUT);
}
void loop() {
digitalWrite(STCP_pin, LOW);
for (int i=0;i<11>> 8);
shiftOut(DS_pin, SHCP_pin, MSBFIRST,dec_digits[i]);
digitalWrite(STCP_pin, HIGH);
delay(75);
digitalWrite(STCP_pin, LOW);
delay(1000);
}
}
Han Smolders
-
- Moderator
- Berichten: 1859
- Lid geworden op: di 24 mar 2009, 12:23
- Locatie: prov Groningen.. .. .. .. .. .. .. .
I.p.v. de spoel zou je een klein gloeilampje kunnen aansluiten.
En dan nameten of de signalen wel kloppen. Je kan de tijden in de sketch dan ook even tijdelijk heel lang zetten zodat je makkelijk kunt meten.
Ik zie ook niet hoe de stroom loopt door de spoel omdat hij op 2 ULN-uitgangen zit aangesloten?
En dan nameten of de signalen wel kloppen. Je kan de tijden in de sketch dan ook even tijdelijk heel lang zetten zodat je makkelijk kunt meten.
Ik zie ook niet hoe de stroom loopt door de spoel omdat hij op 2 ULN-uitgangen zit aangesloten?
Hoe zorgvuldiger je als topicstarter je probleem omschrijft, hoe meer kans op adequate reacties en een oplossing.
Hartelijk dank voor de tip met het gloeilampje, dat ga ik zeker doen. Mijn vermoeden is dat de pulsjes over de verschillende kanalen wel kloppen. Maar het kan geen kwaad om daar zekerheid over te hebben. Wat de laatste opmerking betreft:
Ik geloof dat ik even goed moet nadenken, want dat klopt natuurlijk van de aansluiting op 2 uitgangen.
Ik geloof dat ik even goed moet nadenken, want dat klopt natuurlijk van de aansluiting op 2 uitgangen.
Ik had de werking van een darlington array niet goed begrepen.
Hierbij de nieuwe tekening
Ik kan het niet testen op dit moment omdat 1 van de darlington array's blijkbaar kapot is.
Maar is het mogelijk/goed idee om 2 uitgangen te combineren?
Hierbij de nieuwe tekening
Ik kan het niet testen op dit moment omdat 1 van de darlington array's blijkbaar kapot is.
Maar is het mogelijk/goed idee om 2 uitgangen te combineren?
- Bijlagen
-
- 7Segment_V2.pdf
- (939.7 KiB) 159 keer gedownload
-
- Moderator
- Berichten: 1859
- Lid geworden op: di 24 mar 2009, 12:23
- Locatie: prov Groningen.. .. .. .. .. .. .. .
Je kan alle 7 spoelen toch gewoon met 1 uln aansturen mits de software klopt.
De plus van de uln moet ook aangesloten worden zodat de interne diodes de uln kunnen beschermen tegen de spanningspiek die een spoel veroorzaakt bij uitschakelen.
De plus van de uln moet ook aangesloten worden zodat de interne diodes de uln kunnen beschermen tegen de spanningspiek die een spoel veroorzaakt bij uitschakelen.
Hoe zorgvuldiger je als topicstarter je probleem omschrijft, hoe meer kans op adequate reacties en een oplossing.
Beste smd_lover,
Hartelijk dank voor de ondersteuning. Het was mijn plan om 2 uln's te gebruiken waarbij 1 de uitgeklapte elementen zou doen en de andere de ingeklapte.
Misschien is dit te complex. Ik zit nu te denken om 1 uln te gebruiken maar de software in 2 stappen te doen. Eerst de hele display 'blank' en dan het cijfer maken.
Ik heb nog een vraag over het tijdelijk aansluiten van de display met het breadboard.
Ik zit nu te hannessen met 14 jump kabeltjes. Ik wilde een soort breakout board maken voor de display of een pcb. (nog nooit gedaan) Is er een beter idee?
Hartelijk dank voor de ondersteuning. Het was mijn plan om 2 uln's te gebruiken waarbij 1 de uitgeklapte elementen zou doen en de andere de ingeklapte.
Misschien is dit te complex. Ik zit nu te denken om 1 uln te gebruiken maar de software in 2 stappen te doen. Eerst de hele display 'blank' en dan het cijfer maken.
Ik heb nog een vraag over het tijdelijk aansluiten van de display met het breadboard.
Ik zit nu te hannessen met 14 jump kabeltjes. Ik wilde een soort breakout board maken voor de display of een pcb. (nog nooit gedaan) Is er een beter idee?
Ik krijg het complete beeld niet goed in mijn hoofd of op papier.
Om de individuele elementen van de display heen en terug te klappen moet ook de polariteit van de spoel worden omgezet. In de versie hiervoor gebruikte ik een h-brug
dit werkte. Maar de hoeveelheid h-bruggen maakte het wat ingewikkeld.
Vandaar de 2 uln's. Is er een mogelijkheid om de polariteit te schakelen na de darlington array?
Om de individuele elementen van de display heen en terug te klappen moet ook de polariteit van de spoel worden omgezet. In de versie hiervoor gebruikte ik een h-brug
dit werkte. Maar de hoeveelheid h-bruggen maakte het wat ingewikkeld.
Vandaar de 2 uln's. Is er een mogelijkheid om de polariteit te schakelen na de darlington array?
-
- Moderator
- Berichten: 1859
- Lid geworden op: di 24 mar 2009, 12:23
- Locatie: prov Groningen.. .. .. .. .. .. .. .
Ja als het moet omgepoold dan moet je wel een H-brug hebben of een halve brug i.c.m. 2 voedingsspanningen.
Maar daar zijn toch mooie ic's voor. Bijvoorbeeld de L298 of L293. Dan heb je die uln niet nodig.
Maar daar zijn toch mooie ic's voor. Bijvoorbeeld de L298 of L293. Dan heb je die uln niet nodig.
Hoe zorgvuldiger je als topicstarter je probleem omschrijft, hoe meer kans op adequate reacties en een oplossing.
Ben weer terug bij de H-bruggen. De display werkt, het circuit klopt.
Er is 1 hardnekkig probleem. De spoelen worden heel heet.
Heeft iemand enig idee wat ik fout doe?
Hierbij de specificaties van het display:
https://store.i-t.com/wp-content/upload ... splay2.pdf
Er is 1 hardnekkig probleem. De spoelen worden heel heet.
Heeft iemand enig idee wat ik fout doe?
Hierbij de specificaties van het display:
https://store.i-t.com/wp-content/upload ... splay2.pdf
- Bijlagen
-
- 7Segment_H_Bridge_bb.png (547.01 KiB) 11101 keer bekeken
- Stynus
- Site Admin
- Berichten: 5896
- Lid geworden op: vr 16 mei 2003, 20:45
- Locatie: Overpelt (België)
- Contacteer:
Dan stuur je ze te lang aan. In de datasheet zie ik pulse with 1 msec. Dat is heel kort. Daarna pas weer een puls geven als je wil ompolen. Op die tijd kunnen ze niet veel opwarmen.
Met vriendelijke groet,
Stynus
http://www.elektronicastynus.be
--> Elektronica bouwpakketten en componenten te koop. <--
Stynus
http://www.elektronicastynus.be
--> Elektronica bouwpakketten en componenten te koop. <--
De puls was 75 milliseconden, Is nu 1 millseconde. wachttijd daarna 1999 milliseconden.
De spoelen worden nog steeds heel heet. Op een of andere manier verdenk ik het shift register. Ik zou niet weten hoe of waarom :-)
Hierbij de laatste code.
[code]
#include <Arduino.h>
int DS_pin = D5;
int STCP_pin = D3;
int SHCP_pin = D2;
int dec_digits [11] {0x807E, 0xF20C, 0x48B6, 0x609E, 0x32CC,0x24DA, 0x04FA, 0xF00E, 0x00FE, 0x20DE, 0xFE00};
void setup() {
pinMode(DS_pin, OUTPUT);
pinMode(STCP_pin, OUTPUT);
pinMode(SHCP_pin, OUTPUT);
}
void loop() {
for (int i=0;i<11;i++) {
shiftOut(DS_pin, SHCP_pin, MSBFIRST,dec_digits[i] >> 8);
shiftOut(DS_pin, SHCP_pin, MSBFIRST,dec_digits[i]);
digitalWrite(STCP_pin, HIGH);
delay(1);
digitalWrite(STCP_pin, LOW);
delay(1999);
}
}
[/code]
De spoelen worden nog steeds heel heet. Op een of andere manier verdenk ik het shift register. Ik zou niet weten hoe of waarom :-)
Hierbij de laatste code.
[code]
#include <Arduino.h>
int DS_pin = D5;
int STCP_pin = D3;
int SHCP_pin = D2;
int dec_digits [11] {0x807E, 0xF20C, 0x48B6, 0x609E, 0x32CC,0x24DA, 0x04FA, 0xF00E, 0x00FE, 0x20DE, 0xFE00};
void setup() {
pinMode(DS_pin, OUTPUT);
pinMode(STCP_pin, OUTPUT);
pinMode(SHCP_pin, OUTPUT);
}
void loop() {
for (int i=0;i<11;i++) {
shiftOut(DS_pin, SHCP_pin, MSBFIRST,dec_digits[i] >> 8);
shiftOut(DS_pin, SHCP_pin, MSBFIRST,dec_digits[i]);
digitalWrite(STCP_pin, HIGH);
delay(1);
digitalWrite(STCP_pin, LOW);
delay(1999);
}
}
[/code]
- Stynus
- Site Admin
- Berichten: 5896
- Lid geworden op: vr 16 mei 2003, 20:45
- Locatie: Overpelt (België)
- Contacteer:
Met die code stuur je de spoelen nog continu. Meet maar eens met een multimeter.
Code: Selecteer alles
for (int i=0;i<11>> 8);
shiftOut(DS_pin, SHCP_pin, MSBFIRST,dec_digits[i]);
digitalWrite(STCP_pin, HIGH);
delay(1);
digitalWrite(STCP_pin, LOW);
delay(10);
//Terug 0 uitsturen
shiftOut(DS_pin, SHCP_pin, MSBFIRST,0 >> 8);
shiftOut(DS_pin, SHCP_pin, MSBFIRST,0);
digitalWrite(STCP_pin, HIGH);
delay(1);
digitalWrite(STCP_pin, LOW);
delay(1999);
}
Met vriendelijke groet,
Stynus
http://www.elektronicastynus.be
--> Elektronica bouwpakketten en componenten te koop. <--
Stynus
http://www.elektronicastynus.be
--> Elektronica bouwpakketten en componenten te koop. <--
Beste Stynus,
Mag ik u hartelijk danken! Probleem opgelost. De werking van een shift-register dringt
langzaam door bij mij
Hierbij de laatste code. Ik heb de code tags wegelaten want een regel wordt niet goed weergegeven. Nogmaals hartelijk dank!
#include <Arduino>
int DS_pin = D5;
int STCP_pin = D3;
int SHCP_pin = D2;
int dec_digits [11] {0x807E, 0xF20C, 0x48B6, 0x609E, 0x32CC,0x24DA, 0x04FA, 0xF00E, 0x00FE, 0x20DE, 0xFE00};
void setup() {
pinMode(DS_pin, OUTPUT);
pinMode(STCP_pin, OUTPUT);
pinMode(SHCP_pin, OUTPUT);
}
void loop() {
for (int i=0;i<11>>
;
shiftOut(DS_pin, SHCP_pin, MSBFIRST,dec_digits[i]);
digitalWrite(STCP_pin, HIGH);
delay(1);
digitalWrite(STCP_pin, LOW);
delay(10);
//Terug 0 uitsturen
shiftOut(DS_pin, SHCP_pin, MSBFIRST,0 >>
;
shiftOut(DS_pin, SHCP_pin, MSBFIRST,0);
digitalWrite(STCP_pin, HIGH);
delay(1);
digitalWrite(STCP_pin, LOW);
delay(1999);
}
}
Mag ik u hartelijk danken! Probleem opgelost. De werking van een shift-register dringt
langzaam door bij mij

Hierbij de laatste code. Ik heb de code tags wegelaten want een regel wordt niet goed weergegeven. Nogmaals hartelijk dank!
#include <Arduino>
int DS_pin = D5;
int STCP_pin = D3;
int SHCP_pin = D2;
int dec_digits [11] {0x807E, 0xF20C, 0x48B6, 0x609E, 0x32CC,0x24DA, 0x04FA, 0xF00E, 0x00FE, 0x20DE, 0xFE00};
void setup() {
pinMode(DS_pin, OUTPUT);
pinMode(STCP_pin, OUTPUT);
pinMode(SHCP_pin, OUTPUT);
}
void loop() {
for (int i=0;i<11>>

shiftOut(DS_pin, SHCP_pin, MSBFIRST,dec_digits[i]);
digitalWrite(STCP_pin, HIGH);
delay(1);
digitalWrite(STCP_pin, LOW);
delay(10);
//Terug 0 uitsturen
shiftOut(DS_pin, SHCP_pin, MSBFIRST,0 >>

shiftOut(DS_pin, SHCP_pin, MSBFIRST,0);
digitalWrite(STCP_pin, HIGH);
delay(1);
digitalWrite(STCP_pin, LOW);
delay(1999);
}
}
Het lijkt erop dat ook emoticons in de code kunnen doordringen.
#include <Arduino.h>
int DS_pin = D5;
int STCP_pin = D3;
int SHCP_pin = D2;
int dec_digits [11] {0x807E, 0xF20C, 0x48B6, 0x609E, 0x32CC,0x24DA, 0x04FA, 0xF00E, 0x00FE, 0x20DE, 0xFE00};
void setup() {
pinMode(DS_pin, OUTPUT);
pinMode(STCP_pin, OUTPUT);
pinMode(SHCP_pin, OUTPUT);
}
void loop() {
for (int i=0;i<11;i++) {
shiftOut(DS_pin, SHCP_pin, MSBFIRST,dec_digits[i] >> 8);
shiftOut(DS_pin, SHCP_pin, MSBFIRST,dec_digits[i]);
digitalWrite(STCP_pin, HIGH);
delay(1);
digitalWrite(STCP_pin, LOW);
delay(10);
//Terug 0 uitsturen
shiftOut(DS_pin, SHCP_pin, MSBFIRST,0 >> 8);
shiftOut(DS_pin, SHCP_pin, MSBFIRST,0);
digitalWrite(STCP_pin, HIGH);
delay(1);
digitalWrite(STCP_pin, LOW);
delay(1999);
}
}
#include <Arduino.h>
int DS_pin = D5;
int STCP_pin = D3;
int SHCP_pin = D2;
int dec_digits [11] {0x807E, 0xF20C, 0x48B6, 0x609E, 0x32CC,0x24DA, 0x04FA, 0xF00E, 0x00FE, 0x20DE, 0xFE00};
void setup() {
pinMode(DS_pin, OUTPUT);
pinMode(STCP_pin, OUTPUT);
pinMode(SHCP_pin, OUTPUT);
}
void loop() {
for (int i=0;i<11;i++) {
shiftOut(DS_pin, SHCP_pin, MSBFIRST,dec_digits[i] >> 8);
shiftOut(DS_pin, SHCP_pin, MSBFIRST,dec_digits[i]);
digitalWrite(STCP_pin, HIGH);
delay(1);
digitalWrite(STCP_pin, LOW);
delay(10);
//Terug 0 uitsturen
shiftOut(DS_pin, SHCP_pin, MSBFIRST,0 >> 8);
shiftOut(DS_pin, SHCP_pin, MSBFIRST,0);
digitalWrite(STCP_pin, HIGH);
delay(1);
digitalWrite(STCP_pin, LOW);
delay(1999);
}
}