Pages: 1 [2] 3   Go Down
Author Topic: Het begin  (Read 8343 times)
0 Members and 1 Guest are viewing this topic.
Hoeksche Waard NL
Offline Offline
Newbie
*
Karma: 2
Posts: 22
het leven is een feest, maar je moet zelf de slingers ophangen
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hoi Rob,

hartelijk dank!!

het is gelukt, een ledje op verschillende snelheden laten knipperen.
klinkt eenvoudig, maar nu kan ik communiceren met Arduino.

er is nog een lange weg te gaan, maar de eerste stap is gezet.
overigens is het terugvinden van jouw mailtje op het forum heel moeilijk, maar ja, ook die weg is lang
nog niet veel ervaring met forums, kortom heb nog veel te leren

groeten, Dré
Logged

(groot)vader van 3 kinderen, 2 kleinkinderen. werkzaam als onderhoudsmonteur in een toltunnel
hobby's mechanotronica en (tour)fietsen.

Offline Offline
Newbie
*
Karma: 0
Posts: 29
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Zo, heb al het één en ander gedaan. Lichtjes laten knipperen, fade-in, fade-out, 1 voor 1 aan / uit etc. Code is behoorlijk simpel dusver.
Nu een vraag:

Ik wil een 3x3 led vierkantje maken.
- Hoe verbind ik die aan elkaar? Als ik op youtube kijk bij de ledcubes dan kan ik niet zien hoe deze aan elkaar zijn verbonden
- Hoe geef je aan dat je bv led 1 van kolom 2 wil oplichten?
Logged

Hoeksche Waard NL
Offline Offline
Newbie
*
Karma: 2
Posts: 22
het leven is een feest, maar je moet zelf de slingers ophangen
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hoi Thabram,

Nee, ik heb nog niet veel gedaan, ik wil juist in Bascom gaan programmeren.
Die taal is eenvoudiger dan C. Er is een mogelijkheid om daarin verder te gaan.
Ik heb (slechte) ervaringen met C bij het FEZ bordje dat uitsluitend in C kan worden geprogrammeerd.
Arduino kan ook in Bascom, een Basic variant, worden geprogrammeerd.
Daar ben ik naar op zoek.


Een kubus van 3 x 3 x 3 begin je met het maken van een plat ‘plaatje’ van 3 x 3 ledjes
De lange pootjes zijn + die verbind je horizontaal met elkaar.
De korte pootjes zijn – die verbind je verticaal met elkaar.

Zo heb je 3 plaatjes, die je naast elkaar plaatst.
Zorg er voor dat de onderlinge afstand en de stand van de ledjes zeer precies is, dat is de moeilijkheid.

Je hebt nu 9 minpolen en 9 pluspolen. Immers, je hebt 3 plaatjes met elk 6 aansluitingen

Je kunt dit op verschillende manieren aansturen.
De horizontale (plus) pootjes verbind je wederom horizontaal met elkaar.
De drie ‘plussen’ doorverbinden, parallel zetten, zodat je 3 + aansluitingen hebt.
De – aansluitingen moet je dan afzonderlijk aansturen. Dat zijn er 9, totaal 12 bits.
Niet vergeten om (afhankelijk van de voeding) weerstanden in serie met de 3 + aansluitingen.
Wil je meerdere leds tegelijkertijd aansturen dan moet je elke led zijn eigen weerstand geven.
Maar het best kan je één led tegelijk aansturen, als je dit snel doet, dan zie je dit niet.

Aansturen gaat niet rechtstreeks uit de Arduino, je hebt buffer transistoren of darlintons nodig
Darlintons koop je in array’s, dat is makkelijker. Uiteraard betrek je de voeding NIET uit de Arduino, want dat trekt hij niet. (denk ik, want ik heb geen gegevens, maar als het gehele ding 40 mA trekt, dan zijn 9 leds met elk 10 à 15 mA toch iets te veel van het goede.)

Elke + poot heeft nu 9 – pootjes dus a-b-c zijn bijvoorbeeld de gekoppelde + aansluitingen.
Vervolgens zijn er 1-2-…..-8-9  min aansluitingen.
A & 1 geeft het ledje in de linker bovenhoek A&2 het naastliggende ledje. Etc. etc.

Je kunt de boel ook als 2 dimensionale matrix aansluiten, dan heb je 27 ledjes die je met 5 x 6 bitjes aansluit
Ook hier heeft elk ledje zijn (haar?) eigen combinatie dit is iets voordeliger, het scheelt één bitje.
Maar je moet wat lastiger programmeren, dieper nadenken, maar het kan ook

veel suc6,
groeten, Dré
Logged

(groot)vader van 3 kinderen, 2 kleinkinderen. werkzaam als onderhoudsmonteur in een toltunnel
hobby's mechanotronica en (tour)fietsen.

Offline Offline
Newbie
*
Karma: 0
Posts: 29
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hoi drejansen,

Bedankt voor je duidelijke uitleg. Ik ga eerst maar eens proberen een 3x3 (2d dus) te maken. Dat lijkt me wat makkelijker om te beginnen.
Overigens zou ik als ik jou was toch nog overwegen om de Arduino taal te proberen. Ik programmeer zelf aardig wat talen en moet zeggen dat deze taal misschien wel de simpelste is die ik dusver geleerd heb.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 29
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

Ik heb nu 6 leds via het breadboard op 1 lijn staan en verbonden met pin 11. (zie foto hieronder).
Is het nu mogelijk om deze 6 leds apart te besturen? Als ik elke led een aparte pin geef dan lukt het uiteraard wel, maar als ze allemaal op 1 pin zitten?

Moet ik dan een shift register gebruiken, en kan dat in deze opstelling?

Ik zie dat ik een CD4049UBE register heb ipv de 74HC595 die ik besteld heb :S
Ik snap de datasheet van de 74HC595 wel: http://www.arduino.cc/en/Tutorial/ShiftOut
Maar van de CD4049UBE niet: http://pdf1.alldatasheet.net/datasheet-pdf/view/26877/TI/CD4049UBE/+QWJJ8UPGZwEB8ND/1Hl+/datasheet.pdf

Kan iemand mij vertellen waar op de CD4049UBE de outputs zijn? Bij de 74HC595  is dit 1tm7 + 15

« Last Edit: June 14, 2012, 09:23:57 am by thabram » Logged

Hoeksche Waard NL
Offline Offline
Newbie
*
Karma: 2
Posts: 22
het leven is een feest, maar je moet zelf de slingers ophangen
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hoi Thabram,

nog voordat ik ga kijken hoe het zit met de schuifregisters, meteen mailen dat je deze schakeling NIET MOET AANSLUITEN !!  de 6 leds staan parallel, en dat is zo wie zo niet goed.
de stroom die hier gaat lopen is veel te groot voor de poort
ik zie niet precies de kleuren van het weerstandje, maar het lijkt op blauw-zwart-rood, dat is 6K (geen standaard weerstandswaarde, mogelijk zie ik het verkeerd)
zolang je die 6K weerstand daar laat zitten, gebeurd er niets, je zal ook geen led zien branden.
is de weerstand lager dan 1K dan die je wel één mogelijk twee leds branden, meer niet.
wil je meerdere leds tegelijk aansturen, dan moet je ze in serie (achter elkaar) schakelen.
uiteraard kan je hier dus geen afzonderlijke leds aansturen. het is alles of niets.

dat je leds niet parallel moet schakelen, is omdat leds op stroom werken, en niet op spanning.
natuurlijk is er spanning nodig om stroom te laten vloeien, maar leds zijn geen gloeilampjes.
leds hebben een negatieve temperatuur coëfficiënt, dus worden ze warm, dan wordt de weerstand lager, waardoor ze nóg warmer worden, en de weerstand nog lager wordt, etc.
zou er geen weerstand zitten, dan sneuveld de led.

Bij parallel schakelen zal de ene led meer stroom trekken dan de andere, waardoor er verschillen in lichtintensiteit ontstaat. Niet mooi.
Met een schuifregister kom je hier niet ver mee, het is immers één aansluiting.

Hoe zet je een foto op dit forum?

Ik ga de linken bekijken, en probeer een tekeningetje te maken voor jouw schakeling
Vanavond zal dat niet lukken, want ik heb netwerk problemen.
Nieuwe experiabox en plotseling zien de computers elkaar niet meer.

Groeten, Dré
Logged

(groot)vader van 3 kinderen, 2 kleinkinderen. werkzaam als onderhoudsmonteur in een toltunnel
hobby's mechanotronica en (tour)fietsen.

Offline Offline
Newbie
*
Karma: 0
Posts: 29
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hoi Dré,

Bedankt voor je uitleg. De weerstand op de foto is 1k, echter branden alle ledjes gewoon (de laatste brand inderdaad wat minder). Als ik ze achter elkaar schakel dan hebben ze inderdaad allemaal dezelfde felheid, echter moet ik dan voor elk ledje een pin op de arduino pakken en dat zijn er maar 13. Als ik bv een grid van 5x5 wil maken moet het dus op een andere manier (waarschijnlijk met zo'n schuifregister?).

Foto plaatsen:
Volgens mij kan je geen foto's uploaden op het forum zelf. Wat je moet doen is je foto uploaden bij een gratis hoster bijvoorbeeld: http://imageshack.us/
Vervolgens kopier je de link naar de foto en zet je deze tussen [ img ] [ /img ] (zonder spaties tussen de letters en de haakjes).

Vraagje over de wet van OHM.

- Een ledje is 20ma en 2.25V
- De arduino is 5V
- U = I X R
- Dus: R = U(5-2.25) / I(20ma) = 0,1375

Vraag 1: 0,1375 klopt niet, als je het keer duizend doet kom je uit op 137,5 OHM wat wel klopt, wat doe ik fout in de berekening?
Vraag 2: Zoals in mijn voorbeeld staan er 6 leds parallel geschakeld. Hoe reken je het dan uit? Moet je dan 20ma x 6 = 120ma doen? Wat uit komt op: R = U(5-2.25) / I (120ma) =  0,02291 (weer keer duizend = 22,9 OHM)
Logged

Forum Moderator
Hamme, Belgium
Offline Offline
Sr. Member
*****
Karma: 4
Posts: 386
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

1000 mA = 1 A, dus moet je niet delen door 120 mA maar door 0,12 A

Formules altijd met de hoofdwaarde invullen.  smiley-wink
Logged


Forum Moderator
Belgium
Offline Offline
Edison Member
*****
Karma: 58
Posts: 1731
Arduino rocks; but with my plugin it can fly rocking the world ;-)
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

opgelet
U=R*I klopt niet voor een led.
Een led veroorzaakt een spanningsval. De spanningsval is quasi onafhankelijk van de stroom die er doorloopt.
De spanningsval is afhankelijk van het type led. Daarom wordt er altijd aangeraden om een weerstand in serie met een led te zetten.
De weerstand (die wel luistert naar U= R*I) zal de stroom altijd beperken.
Hier is een link naar een Nederlandstalige website die je alles over leds verteld en ook een led calculator heeft http://www.linetec.nl/electronics/leds/led_1.html

Met vriendelijke groet.
Jan
Logged

Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

Offline Offline
Newbie
*
Karma: 0
Posts: 29
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hoi Jan,

Bedankt voor je antwoord duidelijk.
Heb zojuist een IR distance sensor binnen gekregen (sharp). Wou even testen of hij het doet alleen ik krijg hem niet werkend heel vreemd.
Hij is aangesloten op de ground + 5v + analog pin 5 (zie foto).



Met de volgende code wil ik de waardes dan printen:
Code:
//Analog pins
int sensePin = 5;

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  Serial.println(analogRead(sensePin));
  delay(500);
}

Echter print hij continue de waarde 221 (heel soms 222) als ik me hand voor de sensor houd of wat dan ook doe, er gebeurd niets. Wat doe ik fout?
PS: het is deze sensor http://iprototype.nl/products/components/sensors/ir-sensor-10-80
« Last Edit: June 15, 2012, 01:02:23 pm by thabram » Logged

Hoeksche Waard NL
Offline Offline
Newbie
*
Karma: 2
Posts: 22
het leven is een feest, maar je moet zelf de slingers ophangen
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hoi Thabram,

Wet van ohm klopt maar dioden zijn geen gewone weerstanden.
Een diode heeft een doorlaat spanning van zo’n 1,5V rode leds wat minder, groene leds weer wat meer en wat gele leds doen, weet ik niet. Deze 1,5V is afhankelijk van de temperatuur.
Bij hogere temperatuur wordt deze spanning lager.
Je kan een led, maar elke diode, dus als thermometer gebruiken.
Er zijn betere methodes, maar dat even ter zijde
Bij 6 leds parallel blijft de doorlaatspanning nagenoeg gelijk, de onderlinge verschillen bepalen de helderheid.
Dus blijft het 5-1,5V = 3,5V

De poort IN de arduino,  bestaat uit 2 transistoren, dat zijn eigenlijk ook een soort dioden,  die verlagen de spanning ook iets en zijn temperatuur afhankelijk.
Is er geen stroom, dan meet je de voedingsspanning, maar al trek je enkele mA’s dan daalt de spanning al enorm.
Als je de pull-up weerstand van de poort inschakelt, dan valt daar natuurlijk ook spanning over.
Die pull-up weerstanden worden in/uit geschakeld door…. Alweer transistoren = diode effect.
Eigenlijk kan je dus geen zinnig woord zeggen over de led-schakeling.

Toch wel, want de wet van ohm blijft geldig, alleen meten is weten.
Dus een meetinstrument en je weet nóg niets, want de meter heeft weerstand, en zolang de meterweerstand enorm groot of juist klein is tov het te meten cirquit, is de invloed klein.
Kijk dit maakt elektronica zo leuk!

Ik heb twee tekeningen gemaakt voor het diode matrix probleem.
Één 3-D tekening, daarin zie je dat de led-kubus 3x3x3 is onderverdeeld in een matrix van 3 x 9. Wanneer je het aantal pootjes telt, dan 3+9=12 pootjes voor 3x3x3=27 ledjes. blokje van 3 x 3 x 3 leds.
Dat kan efficiënter: 5x6=30 daarmee kan je dus 30 ledjes aansturen.
Door de 27 ledjes in een 5x6 matrix te schakelen bespaar je één pootje.
5+6 is 11 pootjes.
De tekeningetjes heb ik als ‘foto’ bijgevoegd, tenminste, als jij ze kan zien, dan is het gelukt.

Uitleg:

Je ziet 9 groepjes van telkens 3 dioden verticaal met de anoden met elkaar verbonden.
Als je de lijn A volgt, dan zie je dat deze verbonden is met de bovenste 9 dioden (anoden) Evenzo heeft aansluiting B ook 9 dioden en C neemt er ook 9 voor zijn rekening.
Haaks daarop zijn de kathoden van elke diode per rij met de cijfers verbonden. Volg de lijntjes en je ziet dat 3 x 9 = 21 dioden.
Zet je spanning op punt A (+)  en sluit je 1 aan op – dan zal ledje meest links boven gaan branden.
Let op, er is GEEN weerstand, dus dit ledje sneuveld…
In de lijnen A B en C moet je een weerstand plaatsen. Want je kan in elk vlak tegelijk een led laten branden.
Je kan meerder leds tegelijkertijd laten branden maar dan moet je elke led een eigen weerstand geven. Door te multiplexen heb je maar één weerstand nodig.

Hier   zie je dat het ook anders kan, namelijk in een 5x6 matrix, waarmee je met minder pootjes, toch 30 ledjes kan aansturen. Mijn vraag aan jou: teken de 3 extra ledjes er in, dan weet ik dat jij mijn matrix verhaaltje hebt begrepen.
Wil je groter, kies dan ALTIJD een ONeven aantal, dan hebt je een ‘middelste’ rij.

Groeten, Dré
Logged

(groot)vader van 3 kinderen, 2 kleinkinderen. werkzaam als onderhoudsmonteur in een toltunnel
hobby's mechanotronica en (tour)fietsen.

Forum Moderator
Belgium
Offline Offline
Edison Member
*****
Karma: 58
Posts: 1731
Arduino rocks; but with my plugin it can fly rocking the world ;-)
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Thabram
Vervang
Code:
int sensePin = 5;
door
Code:
int sensePin = A5;
en het zou moeten werken
Jantje
Logged

Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

Offline Offline
Newbie
*
Karma: 0
Posts: 29
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@ Dré: Ik ga snel met jouw schema aan de slag en kijken of ik het begrijp, dankjewel voor je moeite.
@ Jantje: Thanks, dit werkte! Een digitale pin benoem je dus gewoon met het cijfer, en een analoge met de A ervoor?
« Last Edit: June 16, 2012, 04:20:20 am by thabram » Logged

Forum Moderator
Belgium
Offline Offline
Edison Member
*****
Karma: 58
Posts: 1731
Arduino rocks; but with my plugin it can fly rocking the world ;-)
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Thabram
Inderdaad.
Effe door de arduino examples gaan maakt veel duidelijk  smiley-wink
Met vriendelijke groet
Jantje
Logged

Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

Global Moderator
Netherlands
Offline Offline
Shannon Member
*****
Karma: 170
Posts: 12451
In theory there is no difference between theory and practice, however in practice there are many...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Een digitale pin benoem je dus gewoon met het cijfer, en een analoge met de A ervoor?

Een UNO heeft 20 pinnen met nummer 0..19 . Voor de nummers 14-19 is er een alias A0-A5 (er is zelfs een A6 en A7, de laatste is verbonden met een ( interne temp sensor)
Logged

Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)

Pages: 1 [2] 3   Go Up
Jump to: