Wij moeten een product ontwikkelen, waarbij een LEDje moet ' verschuiven van positie'
Het product betreft een nieuw communicatiemiddel voor kinderen aan de beademing.
Wanneer je een reeks Ledjes naast elkaar hebt (waarvan de eerste brand), en twee knoppen, dan is de bedoeling dat wanneer je op de rechter knop drukt het eerste ledje uit gaat, en de volgende aan. Als je nog een keer drukt, dan gaat het licht weer een LEDje verder. enz. Als je op de linker knop drukt moet het licht naar links verschuiven.
We hebben zelf al geprobeerd een circuit als dit te maken met behulp van IC-4024 en IC-4514, maar dit liep op niks uit.
Heeft iemand een tip of (simpelere) oplossing voor dit probleem?
Wanneer dit te moeilijk is, is een oplossing voor 1 knop ook goed (waarbij hij dus maar 1 kant op kan).
Alvast bedankt!,
Tanjim
RobK
Vertel welk probleem je wilt oplossen, niet met welke oplossing je een probleem hebt.
Ik zou in plaats van een 4024 een 40193 gebruiken, dat is een binaire up/down counter met aparte ingangen voor up en down.
Goede denderonderdrukking voor je drukknoppen, dan zou het moeten lukken.
- Rob.
Is het mogelijk om dit digitaal te doen? Dus met een microcontroller.
Want ik neem aan dat de waarde (welk ledje er brandt) ook verder verwerkt zal moeten worden.
Stan1
Read the fuc.... manual and read the fuc.... datasheet! {Proton IDE: V2.0.1.2 / Proton Compiler: V3.5.4.5}
Zoiets?
Als het schakelingetje opstart, brand het eerste (linkse) ledje en
bij ieder druk op de knop UP, gaat de volgende branden en de
huidige gaat uit.
Wanneer het laatste ledje brand en de knop UP gaat de laatste uit en de eerste weer aan.
Als de knop DOWN word ingedrukt, werkt het precies anders om.
Eventueel kan er nog een 74HCT238 aan geknoopt worden, voor nog
eens 8 leds.
Suc6.
Op 11 oktober 2011 13:31:58 schreef RobK:
Ik zou in plaats van een 4024 een 40193 gebruiken, dat is een binaire up/down counter met aparte ingangen voor up en down.Goede denderonderdrukking voor je drukknoppen, dan zou het moeten lukken.
- Rob.
Bedankt voor je reactie.
We hebben nu zo'n 40193, maar wij hebben dit nog nooit eerder gedaan en we snappen er niet heel veel van. We hebben al de datasheet bekeken, maar daar kunnen we niet veel uit opmaken.
We hebben het ook al op verschillende manieren geprobeerd, maar klaarblijkelijk niet op de juiste.
Ik kan als ik weer thuis ben wel een foto toevoegen.
Sorry dat we hier niet zo veel van snappen, en misschien dom lijken
.
Oh, en wat is precies een denderonderdrukker, en is die echt nodig?
Heel erg bedankt, het ziet er nogal ingewikkeld uit (voor ons doen), maar we zullen er binnenkort even goed naar kijken
.
[Bericht gewijzigd door Henry S. op (15%)]
Let wel op, in dat schema zit geen ontdendering, je hebt dan grote kans dat bij iedere druk op de knop je LED een willekeurig aantal stappen gaat maken.
Stan1
Read the fuc.... manual and read the fuc.... datasheet! {Proton IDE: V2.0.1.2 / Proton Compiler: V3.5.4.5}
Op 12 oktober 2011 13:13:08 schreef mbbneon:
Let wel op, in dat schema zit geen ontdendering, je hebt dan grote kans dat bij iedere druk op de knop je LED een willekeurig aantal stappen gaat maken.
Klopt, mijn schema is een principe schema en bevat geen ontdendering en ook geen voeding 's (Vcc / Vss) lijnen!
We hebben bedacht om een Arduino te gebruiken, alleen ken ik die taal niet.
Ik had al bedacht om een soortgelijke codering als:
int buttonState = 0;
void setup() {
pinMode(13, OUTPUT);
pinMode(2, INPUT);
}
void loop(){
buttonState = digitalRead(2);
if (buttonState == HIGH) {
digitalWrite(13, HIGH);
}
else {
digitalWrite(13, LOW);
}
}(Voor de knop)
Samen te voegen met
int del=100;
void setup()
{
// initialize the digital pins as outputs:
// later on there will be easier ways to do this
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
}
// the loop() method repeats indefinitely until you turn off the power
void loop()
{
digitalWrite(2, HIGH); // turn on LED on pin 2
delay(del); // wait (length determined by value of 'del')
digitalWrite(2, LOW); // turn it off
digitalWrite(3, HIGH); // turn on LED on pin 3
delay(del); // wait
digitalWrite(3, LOW); // turn it off
digitalWrite(4, HIGH); // turn on LED on pin 4
delay(del); // wait
digitalWrite(4, LOW); // turn it off
digitalWrite(5, HIGH); // turn on LED on pin 5
delay(del); // wait
digitalWrite(5, LOW); // turn it off
digitalWrite(6, HIGH); // turn on LED on pin 6
delay(del); // wait
digitalWrite(6, LOW); // turn it off
digitalWrite(7, HIGH); // turn on LED on pin 7
delay(del); // wait
digitalWrite(7, LOW); // turn it off
digitalWrite(8, HIGH); // turn on LED on pin 8
delay(del); // wait
digitalWrite(8, LOW); // turn it off
digitalWrite(9, HIGH); // turn on LED on pin 9
delay(del); // wait
digitalWrite(9, LOW); // turn it off
digitalWrite(8, HIGH); // turn on LED on pin 8
delay(del); // wait
digitalWrite(8, LOW); // turn it off
digitalWrite(7, HIGH); // turn on LED on pin 7
delay(del); // wait
digitalWrite(7, LOW); // turn it off
digitalWrite(6, HIGH); // turn on LED on pin 6
delay(del); // wait
digitalWrite(6, LOW); // turn it off
digitalWrite(5, HIGH); // turn on LED on pin 5
delay(del); // wait
digitalWrite(5, LOW); // turn it off
digitalWrite(4, HIGH); // turn on LED on pin 4
delay(del); // wait
digitalWrite(4, LOW); // turn it off
digitalWrite(3, HIGH);
delay(del);
digitalWrite(3, LOW); Nou zijn dit 2 tutorial codes, die niet precies accuraat zijn.
Ik had al bedacht om het lampje dat aan moet een variabele te maken, en dan dat bij een buttonpress:
x=LOW
x+1=HIGH
x=x+1
Nu lukt het me helaas niet helemaal om samen te voegen omdat ik de taal niet ken.
Als jullie snappen wat ik bedoel, kunnen jullie me dan helpen?
Om misschien beter te snappen wat ik bedoel: Dit is het volgende wat ik heb uitgewerkt.
Hier zitten echter nog veel fouten in, en is nog niet klaar.
int buttonState = 0;
int x = 3;
void setup() {
pinMode(13, OUTPUT);
pinMode(2, INPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
}
void loop(){
buttonState = digitalRead(2);
if (buttonState == HIGH) {
digitalWrite(x, HIGH);
if (x=5) {
int x=3;
}
if(x=5) {
digitalWrite(6,LOW);
}
digitalWrite(x-1, LOW);
x=3;
}
else {
digitalWrite(13, LOW);
}
int x = x+1;
}[Bericht gewijzigd door Henry S. op (9%)]
Gaan we nu ook naar een µC grijpen om een LED-je aan/uit te doen?
Schema van Stan1 zijn 2IC's en wat rand componentjes. Zit in een uurtje in elkaar i.p.v. twee dagen programmeren en een dag debuggen.
i.p.v. twee dagen programmeren en een dag debuggen.
mischien een beetje overdreven.
maar ik vindt het ook overdreven om een uc te pakken voor een paar ledjes aan en uit te kniperen