Het zou heel goed toch aan die knopjes kunnen liggen. Ik heb niet de puf vandaag om de hele opstelling goed door te nemen maar heb zelf gezien dat die switches nogal eens verspringende resultaten vertonen. Dat is normaal en heet contactdender. Dat is op te vangen door er een standaard flipflop erachter te zetten.
Dat gaat niet werken met leds volgens mij: De interne weerstand is iets van 20-50 kOhms.mrfu schreef op zaterdag 18 januari 2014 @ 12:03:
[...]
Weerstanden zijn in die setup niet nodig, mensen.
Als je in Arduino het volgende doet:
pinMode(pinNr, INPUT_PULLUP); // Word een input met interne weestand
We do what we must because we can.
Ik heb de kabel van die van de knop komt er eens tussen uitgehaald, zodat deze geen invloed kan uitoefenen, maar ik blijf wisselende resultaten krijgen. Met een standaard flipflop bedoel je daarmee een knop die je echt duidelijk verwisseld van stand? Zoals een knop bij een standaard lamp?kitao schreef op zaterdag 18 januari 2014 @ 12:55:
Het zou heel goed toch aan die knopjes kunnen liggen. Ik heb niet de puf vandaag om de hele opstelling goed door te nemen maar heb zelf gezien dat die switches nogal eens verspringende resultaten vertonen. Dat is normaal en heet contactdender. Dat is op te vangen door er een standaard flipflop erachter te zetten.
Nee, dat is dat niet. Ik zal dit moeten opzoeken, staat ergens in boekje.4Real schreef op zaterdag 18 januari 2014 @ 12:58:
[...]
Ik heb de kabel van die van de knop komt er eens tussen uitgehaald, zodat deze geen invloed kan uitoefenen, maar ik blijf wisselende resultaten krijgen. Met een standaard flipflop bedoel je daarmee een knop die je echt duidelijk verwisseld van stand? Zoals een knop bij een standaard lamp?
Google anders alvast even op contactdender flipflop.
Wat ik ook paar keer heb gezien is dat er een delay in het programma wordt gezet van ik meen 20 om dit verschijnsel enigzins op te vangen.
Zou ik ook moeten opzoeken.
/edit, ik zeg trouwens niet dat dit bij jouw schakeling nu het probleem is en dat daarna alles pico bello is.
C++:
1
2
3
4
5
6
7
8
9
10
11
12
| pressed = digitalRead(2); if (pressed == HIGH) { pressed = 0; action = 0; lcd.clear(); lcd.setCursor(0,0); lcd.print("Reset min/max?"); lcd.setCursor(0,1); lcd.print("1 = Yes, 2 = No"); delay(500); // gives time to ignore switch bounce while (action == 0) // loop around until the user presses yes or no for reset |
zie regel 11 : delay(500); // gives time to ignore switch bounce
exercise 2.2 example sketch download
http://tronixstuff.com/20...with-arduino-chapter-two/
switch debounce flipflop

[ Voor 38% gewijzigd door kitao op 18-01-2014 13:33 ]
Ik zou nou niet vertrouwen op de interne pullup werstanden als stroom begrenzer voor leds. Ze zijn bedoeld als pull up voor een schakelaar of een ander IC.mrfu schreef op zaterdag 18 januari 2014 @ 12:03:
[...]
Weerstanden zijn in die setup niet nodig, mensen.
Als je in Arduino het volgende doet:
pinMode(pinNr, INPUT_PULLUP); // Word een input met interne weestand
Dan kun je dus van pin 2 naar pin 3 een stroom sturen door pin 2 op HIGH te zetten en pin 3 op INPUT_PULLUP. Omdat je daarna de schakeling om moet draaien voor multiplexing, wil je geen weerstanden in je schakeling! Terwijl je wel net zo makkelijk de schakeling in de microprocessor om kan draaien met je code. (Pin 2 wordt input en pin 3 word output, waardoor stroom de andere kant terug gaat.)
En dat is ook nog het grootste probleem, de waarde kan behoorlijk verschillen per ICResuCigam schreef op zaterdag 18 januari 2014 @ 12:58:
[...]
Dat gaat niet werken met leds volgens mij: De interne weerstand is iets van 20-50 kOhms.
Het probleem met schakelaars is is dat ze "denderen" Dat wil zeggen dat het mechanische contact stuitert als je op de knop drukt. Om dat de microcontroller heel snel is ziet hij dat dus 2 of meer pulsen op de inut als je de knop 1 keer indrukt.4Real schreef op zaterdag 18 januari 2014 @ 12:58:
[...]
Ik heb de kabel van die van de knop komt er eens tussen uitgehaald, zodat deze geen invloed kan uitoefenen, maar ik blijf wisselende resultaten krijgen. Met een standaard flipflop bedoel je daarmee een knop die je echt duidelijk verwisseld van stand? Zoals een knop bij een standaard lamp?
Je kan dit op twee manieren op lossen: 1: door een anti dender schakeling voor de input. Of 2 door het in de software op te vangen, je negeert dan nadat je de knop detecteert voor een aantal milliseconden de hele knop
All electric components run on smoke. If you let the smoke out, they won't work anymore.
Noem het gewoon bouncen ipv denderen, dat geeft ten minste zinnige resultaten in google.
Die x milliseconden zie ik terug in de code.SnowDude schreef op zaterdag 18 januari 2014 @ 13:30:
[...]
Het probleem met schakelaars is is dat ze "denderen" Dat wil zeggen dat het mechanische contact stuitert als je op de knop drukt. Om dat de microcontroller heel snel is ziet hij dat dus 2 of meer pulsen op de inut als je de knop 1 keer indrukt.
Je kan dit op twee manieren op lossen: 1: door een anti dender schakeling voor de input. Of 2 door het in de software op te vangen, je negeert dan nadat je de knop detecteert voor een aantal milliseconden de hele knop
code:
1
2
3
4
5
6
7
| //Pulse the latch pin: //set it to 1 to collect parallel data digitalWrite(latchPin,1); //set it to 1 to collect parallel data, wait delayMicroseconds(20); //set it to 0 to transmit data serially digitalWrite(latchPin,0); |
geeft wel meer maar is niet persé nodigmcDavid schreef op zaterdag 18 januari 2014 @ 13:33:
Noem het gewoon bouncen ipv denderen, dat geeft ten minste zinnige resultaten in google.
http://www.circuitsonline.net/forum/view/59843
Dan kun je die wellicht verhogen of is het toch iets anders. Succes ermee.4Real schreef op zaterdag 18 januari 2014 @ 13:36:
Die x milliseconden zie ik terug in de code.
[ Voor 29% gewijzigd door kitao op 18-01-2014 13:43 ]
Tja sorry dat ik de Nederlandse termen gebruik op een Nederlands forummcDavid schreef op zaterdag 18 januari 2014 @ 13:33:
Noem het gewoon bouncen ipv denderen, dat geeft ten minste zinnige resultaten in google.
All electric components run on smoke. If you let the smoke out, they won't work anymore.
Maar Google geeft over het algemeen véél meer resultaten op Engelse termen
After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
Verwijderd

ik ontving net ook nog een zgn MMA7361 Angle Sensor Inclination Accelerometer Acceleration Module
leuk om is mee te spelen, er zijn library's en code te vinden, maar zo'n heldere video uitleg is ook top
[YouTube: http://www.youtube.com/watch?v=-O-3HWkDoQc]
[ Voor 8% gewijzigd door Verwijderd op 18-01-2014 14:59 ]
@4Real
Ik ben ook bezig met shifts en ik zie in mijn mapje dat ik nog ergens één CD4021 heb liggen.
Inmiddels heb ik ook 9 x 595 in huis.
Ik zal vandaag proberen dit na te bouwen volgens de arduino site die jij gaf.
Laat even weten als je het inmiddels al gevonden hebt ?
Terug van de electronicboer en met interessante resultaten. Als eerste heb ik de CD4021BE (de tutorial zei CD4021B, maar volgens de electronicaboer was en versie +E geen probleem). Dus register er in, kabels gepatched zoals op de site code er ingegooid (weer de drie regels uitgeschakeld voor tweede register).
Eerste resultaat: 1111111 (zeven * één). Bij het drukken op een knop werd dit 8*1, en nog een vreemde wiebeling, maar minder. Pin#7 (eerste input van register) daar zit nu de knop op, waarom hij dan één langer en korter wordt weet ik niet, want ik zou verwacht dat wanneer eerste poort op 0 staat dat hij 11111110 zou zijn, maar goed op zich niet echt interessant als je volgende ziet.
Ik heb alle andere poorten heb ik nu direct naar de ground heen geleid en weer het resultaat bekeken. Zonder iets aan te raken: '0', dus alles uit. Knop ingedrukt: '1' en dat zonder wiebeling. Knop naar poort2 en poort1 naar ground. Resultaat zonder aanraking: '0', met aanraking: '10'. Precies wat ik zou verwachten. Dus
Experiment voor morgen, andere shift register terug plaatsen en ook alle andere poorten naar ground en testen wat de resultaten zijn.
Eerste resultaat: 1111111 (zeven * één). Bij het drukken op een knop werd dit 8*1, en nog een vreemde wiebeling, maar minder. Pin#7 (eerste input van register) daar zit nu de knop op, waarom hij dan één langer en korter wordt weet ik niet, want ik zou verwacht dat wanneer eerste poort op 0 staat dat hij 11111110 zou zijn, maar goed op zich niet echt interessant als je volgende ziet.
Ik heb alle andere poorten heb ik nu direct naar de ground heen geleid en weer het resultaat bekeken. Zonder iets aan te raken: '0', dus alles uit. Knop ingedrukt: '1' en dat zonder wiebeling. Knop naar poort2 en poort1 naar ground. Resultaat zonder aanraking: '0', met aanraking: '10'. Precies wat ik zou verwachten. Dus

Experiment voor morgen, andere shift register terug plaatsen en ook alle andere poorten naar ground en testen wat de resultaten zijn.
Ik heb het idee dat het aan de functie: digitalRead ligt.
Dat wanneer een pin niet is aangesloten de Arduino niet precies weet wat hij moet en dan maar random iets terug geeft.If the pin isn't connected to anything, digitalRead() can return either HIGH or LOW (and this can change randomly).
Daarom heb je een pulldown of pullup weerstand4Real schreef op zaterdag 18 januari 2014 @ 15:00:
Ik heb het idee dat het aan de functie: digitalRead ligt.
Dat wanneer een pin niet is aangesloten de Arduino niet precies weet wat hij moet en dan maar random iets terug geeft.
http://arduino.cc/en/tutorial/button
Ik heb trouwens maar 4 tactiles dus net bergje bijbesteld. Wel makkelijk zo'n boer in de buurt, hoewel ik me afvraag of die er 50 kan geven voor $2,35
Dit kan echter 2 maanden duren voor ze binnen zijn en die 50 maak ik nooit meer op.
[ Voor 26% gewijzigd door kitao op 18-01-2014 15:20 ]
Het is niet dat de µC het niet weet, maar dat een input high impedance is en door een verwaarloosbare stroom/lading beïnvloed wordt. De RF van de omliggende elektronica is al voldoende om het hele bereik te 'zien'. De input zweeft dan, vandaar dat er pull-ups en pull-down weerstanden worden gebruikt om een standaardtoestand te definiëren.
Hoe meer ik weet,
hoe meer ik weet,
dat ik niets weet.
Verwijderd
wat begrijp je niet K ? dat is het bekende ' HET WERKT ' tweakers dansje
* vraag .. kan ik een standalone arduino nano resetten vanuit een sketch ? (dus zonder extra hardware/bedrading)
[ Voor 23% gewijzigd door Verwijderd op 18-01-2014 15:43 ]
Ok dan BVerwijderd schreef op zaterdag 18 januari 2014 @ 15:30:
wat begrijp je niet K ? dat is het bekende ' HET WERKT ' tweakers dansje
Ik zou me echter afvragen waarom het eerst niet werkte. Misschien omdat de 595 voor uitbreiden uitgangen is en de 4021B(E) voor uitbreiden ingangen ?
http://www.sinneb.net/?cat=6
Control CD4021 and 74HC595 over the same SPI bus
Of zou dat niet moeten uitmaken als de sketch maar klopt ?
Nou ja, geeft niet, ik ga het zelf proberen, gaat echter niet snel vandaag

Je zou eigenlijk de datasheets moeten vergelijken van de 595 en de 21 om te kijken of die zomaar uitwisselbaar zijn. Niet iedere shifter is gelijk natuurlijk.
Hier gaat ook iets daarover:
http://electronics.stacke...ister-m74hc165-connection
http://dduino.blogspot.gr...-psio-shift-regsiter.html
165=/595
[ Voor 24% gewijzigd door kitao op 18-01-2014 16:01 ]
Volgens mij moet dat wel kunnen met de watchdog timer, code is niet getest:Verwijderd schreef op zaterdag 18 januari 2014 @ 15:30:
[...]
wat begrijp je niet K ? dat is het bekende ' HET WERKT ' tweakers dansje
* vraag .. kan ik een standalone arduino nano resetten vanuit een sketch ? (dus zonder extra hardware/bedrading)
code:
1
2
3
4
| #include <avr/wdt.h> wdt_enable(WDTO_15MS); // delay(30); na 15ms geeft de watchdog timer een reset voor dat de delay is afgelopen. |
Met een draad tussen een IO pin en de reset pin wordt afgeraden in de ATmega data sheets, de pin owrdt weer hoog voordat de hele cycle is afgerond.
All electric components run on smoke. If you let the smoke out, they won't work anymore.
Nou, ik was dus met mijn telefoonprojectje aan het stoeien, toen had ik een 3x6 matrix (18 switches) verkeerd om gesoldeerd. Dom dom dom, maar gelukkig had ik er nog 32 liggen voor een 2e poging.kitao schreef op zaterdag 18 januari 2014 @ 15:15:
Dit kan echter 2 maanden duren voor ze binnen zijn en die 50 maak ik nooit meer op.
Zo zie je maar weer, dat het hard kan gaan.
| Mijn joystick / simpit project | Blog | Elite Dangerous CMDR Cataclysm72
Gaat zeker hard als je net als ik de verkeerde bestelt. Ik heb nog opgemeten (6x6) want daar had ik er 2 van liggen. Blijkt nu dat ze waardeloos over het middengedeelte van het breadboard passen. Op het gaatjesgedeelte passen ze wel goed maar dan hou je weinig ruimte over.
@BZ hieronder
Ga nou ajb niet opnieuw beginnen want ik was niet degeen die hier met vragen kwam van het werkt niet.
Probeer een beetje ontopic te blijven, lijkt me handiger.
@BZ hieronder
Ga nou ajb niet opnieuw beginnen want ik was niet degeen die hier met vragen kwam van het werkt niet.
Probeer een beetje ontopic te blijven, lijkt me handiger.
[ Voor 24% gewijzigd door kitao op 18-01-2014 17:14 ]
Verwijderd
Kijk K.. dat zie ik jou ook wel eens doen en over het algemeen is dat verspilde energie imho.kitao schreef op zaterdag 18 januari 2014 @ 15:43:
[...]
Ok dan B![]()
Ik zou me echter afvragen waarom het eerst niet werkte. Misschien omdat de 595 voor uitbreiden uitgangen is en de 4021B(E) voor uitbreiden ingangen ?
je ziet een leuke tutorial... die wil je na gaan bouwen (leerzaam) maar je doet het net ff anders, of je gebruikt andere componenten (verwarrend).. en dan loop je tegen problemen op waarbij je je af gaat vragen.. ligt het aan mij of aan de tutorial (en dat is ONtopic )
Deze werkt prima:* vraag .. kan ik een standalone arduino nano resetten vanuit een sketch ? (dus zonder extra hardware/bedrading)
code:
1
2
3
| void softReset() { // Restarts program from beginning but does not reset the peripherals and registers asm volatile (" jmp 0"); } |
Verwijderd
tnx .. SnowDude en MacMF
ben bezig met een 'dipswitch routine.
ik lees (als byte) de stand van alle schakelaars en vergelijk die met de laats bekende.. komt die niet overeen is er dus een instelling verandert en wil ik even resettten (ik sjek die dipswitch alleen bij booten)
ga het ff testen
want ' does not reset the peripherals and registers '
ben bezig met een 'dipswitch routine.
ik lees (als byte) de stand van alle schakelaars en vergelijk die met de laats bekende.. komt die niet overeen is er dus een instelling verandert en wil ik even resettten (ik sjek die dipswitch alleen bij booten)
ga het ff testen

[ Voor 16% gewijzigd door Verwijderd op 18-01-2014 17:22 ]
Ik heb gebruik het om m'n nrf24l01 nodes te resetten na het ophalen van node adres en andere settings. Die peripherals en registers zou ik niet mee zitten, als je goede libraries voor je peripherals gebruikt zal alles weer netjes geinitialiseerd worden.Verwijderd schreef op zaterdag 18 januari 2014 @ 17:20:
tnx .. SnowDude en MacMF
ben bezig met een 'dipswitch routine.
ik lees (als byte) de stand van alle schakelaars en vergelijk die met de laats bekende.. komt die niet overeen is er dus een instelling verandert en wil ik even resettten (ik sjek die dipswitch alleen bij booten)
ga het ff testenwant ' does not reset the peripherals and registers '
Mooi klokje Borroz!
We do what we must because we can.
Verwijderd
tnx.. software is nog niet helemaal klaar.. en ik moet me dwingen dat af te maken want onderdelen voor de volgende projektjes zijn al binnen.ResuCigam schreef op zaterdag 18 januari 2014 @ 18:09:
Mooi klokje Borroz!
oa die dipswitch waarmee ik delen van de hoofdroutine aan/uit kan zetten, dus vb temperatuur meten aan/uit en de 'handklapbediening' .. in rust heb je dan geen beeld en staat de matrix uit.

het binnenwerk
[ Voor 19% gewijzigd door Verwijderd op 18-01-2014 18:47 ]
Jep. Vanmiddag al mijn eerste werkende projectjes gedaan zelfResuCigam schreef op vrijdag 17 januari 2014 @ 21:26:
@DennusB: Ik vond dat boek echt een prima begin, neem vooral je tijd ervoor. Wat Raven al zei: Maak alle voorbeelden zelf en blader desnoods een keertje terug tot je het helemaal snapt
Owner of DBIT Consultancy | DJ BassBrewer
Inmiddels ook de schakeling opgebouwd met 1x CD4021BE. Eerste wat ik heb gedaan is die switches eruit gooien, je kunt onmogelijk 8 knopjes tegelijk gaan bedienen tenzij je virtuoos pianospeler bent. Dus gewoon losse draden gepakt. Vervolgens deze sketch opgeladen (codesample1.1) :4Real schreef op zaterdag 18 januari 2014 @ 14:52:
Dus register er in, kabels gepatched zoals op de site code er ingegooid (weer de drie regels uitgeschakeld voor tweede register).
Eerste resultaat: 1111111 (zeven * één). Bij het drukken op een knop werd dit 8*1, en nog een vreemde wiebeling, maar minder. Pin#7 (eerste input van register) daar zit nu de knop op, waarom hij dan één langer en korter wordt weet ik niet, want ik zou verwacht dat wanneer eerste poort op 0 staat dat hij 11111110 zou zijn, maar goed op zich niet echt interessant als je volgende ziet.
Ik heb alle andere poorten heb ik nu direct naar de ground heen geleid en weer het resultaat bekeken. Zonder iets aan te raken: '0', dus alles uit. Knop ingedrukt: '1' en dat zonder wiebeling. Knop naar poort2 en poort1 naar ground. Resultaat zonder aanraking: '0', met aanraking: '10'. Precies wat ik zou verwachten.
Experiment voor morgen, andere shift register terug plaatsen en ook alle andere poorten naar ground en testen wat de resultaten zijn.
http://arduino.cc/en/Tutorial/ShftIn11
Hier heb ik geen regels verwijderd, werkt goed zoals het is. Maar om goed te kunnen nagaan wat er nu eigenlijk gebeurt, de delay verhoogd voor het inlezen zodat ik tijd heb om de ingangen te veranderen zonder dat het seriele monitorbeeld verandert.
//white space
Serial.println("-------------------");
//delay so all these print satements can keep up.
delay(500);
Deze van 500 tot 20000 verhoogd. (=20 seconden)
En er is sprake van MSB en LSB, alle waardes die op 0 staan vanaf de MSB naar LSB gezien worden niet geprint totdat ze een 1 tegenkomen. (dit staat ook in de sketch als comment):
//Print out the results.
//leading 0's at the top of the byte
//(7, 6, 5, 4, 3, 2, 1, 0) will be dropped before
//the first pin that has a high input
//reading
Zie de afbeelding van mijn seriele monitor hieronder.
Alles op 0
LSB op 1
Volgende ook op 1 etc
En dan als laatste de MSB op 1 en de rest op 0.

Plaatje is klikbaar
Wat je dus ziet is dat de LSB zich van links naar rechts verplaatst (van boven naar beneden gezien) iedere keer als er een 1 bijkomt.
Die delay is niet voor contactdender.4Real schreef op zaterdag 18 januari 2014 @ 13:36:
[...]
Die x milliseconden zie ik terug in de code.
C++:
1 2 3 4 5 6 7 //Pulse the latch pin: //set it to 1 to collect parallel data digitalWrite(latchPin,1); //set it to 1 to collect parallel data, wait delayMicroseconds(20); //set it to 0 to transmit data serially digitalWrite(latchPin,0);
Dat stukje programma maakt pin 8 van de arduino hoog en daarna laag zodat pin 9 van de CD4021 (latchpin), waarmee die verbonden is, ook hoog en laag wordt. Dat is om dit te bereiken:
The third pin attached to the Arduino is a "Parallel to Serial Control" pin. You can think of it as a latch pin. When the latch pin is HIGH the shift register is listening to its 8 parallel ins. When it is LOW it is listening to the clock pin and passing information serially. That means every time the latch pin transitions from HIGH to LOW the shift register will start passing its most current switch information.
http://www.arduino.cc/en/Tutorial/ShiftIn
C++:
1
2
3
| int latchPin = 8; int dataPin = 9; int clockPin = 7; |
/edit :
Bedoel je met die 'andere shift register' de 74HC595 ?4Real schreef op zaterdag 18 januari 2014 @ 14:52:
Experiment voor morgen, andere shift register terug plaatsen en ook alle andere poorten naar ground en testen wat de resultaten zijn.
Dat gaat niet lukken zeer waarschijnlijk
Datasheet 74HC595:
8-bit serial-in, serial or parallel-out shift register with output latches; 3-state
2. Features and benefits
8-bit serial input
8-bit serial or parallel output
3. Applications
Serial-to-parallel data conversion
Datasheet 4021BE:
Asynchronous parallel input or synchronous serial input/serial output
Applications
-Parallel input/serial output data queing
-Parallel to serial data conversion
Met daarbij de opmerking dat de 21 nog de mogelijkheid heeft voor seriële input. Bij de 595 zie ik echter nergens staan dat die parallelle input kan hebben (parallel zijn dus die 8 switches die in het voorbeeld worden gebruikt).
[ Voor 37% gewijzigd door kitao op 19-01-2014 06:35 . Reden: toevoeging ]
Het kan allebei en beide komen aan bod in je boekDennusB schreef op zaterdag 18 januari 2014 @ 18:21:
[...]
Jep. Vanmiddag al mijn eerste werkende projectjes gedaan zelfErg gaaf. Enige wat ik nog niet helemaal snap, stel ik heb 4 knoppen op mijn breadboard. Moet ik die dan allemaal een eigen input geven op de Arduino of kan ik ze in serie zetten of zo(ik moet natuurlijk wel kunnen detecteren welke van de 4 er dan word ingedrukt).
We do what we must because we can.
Thanks. Gevonden inderdaadResuCigam schreef op zaterdag 18 januari 2014 @ 18:31:
[...]
Het kan allebei en beide komen aan bod in je boek
Wil het later ook nog uitbreiden met NFC.
Alleen waar ik maar niks goed op kan verzinnen is : Hoe maak ik een mooie behuizing voor alles als het klaar is? Hoe doen jullie dat?
Owner of DBIT Consultancy | DJ BassBrewer
Verwijderd
tja.. daar is heel veel voor te koop
als je veel knutselt is het handig om je Arduino in een open frame te plaatsen, zodat je nog overal bij kan en toch niet de hele mikmak los op je tafel hebt liggen.
als je veel knutselt is het handig om je Arduino in een open frame te plaatsen, zodat je nog overal bij kan en toch niet de hele mikmak los op je tafel hebt liggen.
Ah, dat ziet er goed uitVerwijderd schreef op zondag 19 januari 2014 @ 11:57:
tja.. daar is heel veel voor te koop
als je veel knutselt is het handig om je Arduino in een open frame te plaatsen, zodat je nog overal bij kan en toch niet de hele mikmak los op je tafel hebt liggen.
Owner of DBIT Consultancy | DJ BassBrewer
Is het niet een idee om een functie te maken die de pinnen / het shift register uitleest en in variabelen stopt, en dat je die weer oproept bij zowel het opstarten als wanneer je er achter komt dat er iets veranderd is? Op die manier hoef je ook niet je hele µC te resetten.Verwijderd schreef op zaterdag 18 januari 2014 @ 17:20:
tnx .. SnowDude en MacMF
ben bezig met een 'dipswitch routine.
ik lees (als byte) de stand van alle schakelaars en vergelijk die met de laats bekende.. komt die niet overeen is er dus een instelling verandert en wil ik even resettten (ik sjek die dipswitch alleen bij booten)
ga het ff testenwant ' does not reset the peripherals and registers '
Verwijderd
dat is idd handigermarcop23 schreef op zondag 19 januari 2014 @ 12:39:
[...]
Is het niet een idee om een functie te maken die de pinnen / het shift register uitleest en in variabelen stopt, en dat je die weer oproept bij zowel het opstarten als wanneer je er achter komt dat er iets veranderd is? Op die manier hoef je ook niet je hele µC te resetten.
- of je checkt regelmatig (vb via een timer interrupt--> functie) je schakelaars en veranderd de variabelen 'real time.
- of je constateert een verandering in de stand van de switch wanneer je een bepaalde functie in gaat.
het resetten is wellicht niet nodig.
ik wil eigenlijk voorkomen dat er tig x per seconde naar die switch gekeken wordt die waarschijnlijk, na 1 x te zijn ingesteld, niet of nauwelijks veranderd.
dat had ik zo evt. kunnen lossen, zodra je een instelling in de switch veranderd moet je resetten.. handmatig (stekker eruit/erin) of drukknopje ( of die regel code)
maar ik probeer nog even eea .. mijn eerste gedachte was energie besparing, maar dat is nu even niet van belang omdat aan dit klokje een adapter zit.
[ Voor 17% gewijzigd door Verwijderd op 19-01-2014 17:30 ]
Ik heb een vaag probleem, niet normaal 
Ik heb deze code:
En het programma werkt niet, de eerste regel "Test" verschijnt al niet op de serial monitor. Maar als ik het digitalRead commando weghaal dan doet het programma het wel gewoon
Wat doe ik fout? Dit moet toch gewoon werken zo of niet?
Ik heb deze code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| int Sensor2=10; bool ValSensor2; void setup() { Serial.begin(9600); pinMode (Sensor2, INPUT); } void loop() { Serial.println ("Test"); delay (1000); do { ValSensor2=digitalRead(Sensor2); delay(10); } while (ValSensor2); } |
En het programma werkt niet, de eerste regel "Test" verschijnt al niet op de serial monitor. Maar als ik het digitalRead commando weghaal dan doet het programma het wel gewoon
Wat doe ik fout? Dit moet toch gewoon werken zo of niet?
[ Voor 3% gewijzigd door almightyarjen op 19-01-2014 14:20 ]
Als eerste:
digitalRead returned een int, geen bool. De int kan de waarde HIGH of LOW hebben. Dat zijn gedefiniëerde waarden, maar die kunnen in theorie veranderen per Arduino versie. Dus in je code moet je output alleen met HIGH of LOW vergelijken.
Het zou kunnen zijn dat je Serial.println voor de eerste keer al geweest is voordat je je Serial monitor opent. En daarna je in je while-loop blijft hangen. Hoewel dat met auto-reset niet zou moeten kunnen. Daarnaast moet je bedenken dat de Arduino-software wat dingen buiten iedere loop() call doet o.a. om je Serial input/output te verzorgen. Dus als je nooit uit je loop() call komt heb je kans dat hier ook niks gebeurd.
digitalRead returned een int, geen bool. De int kan de waarde HIGH of LOW hebben. Dat zijn gedefiniëerde waarden, maar die kunnen in theorie veranderen per Arduino versie. Dus in je code moet je output alleen met HIGH of LOW vergelijken.
Het zou kunnen zijn dat je Serial.println voor de eerste keer al geweest is voordat je je Serial monitor opent. En daarna je in je while-loop blijft hangen. Hoewel dat met auto-reset niet zou moeten kunnen. Daarnaast moet je bedenken dat de Arduino-software wat dingen buiten iedere loop() call doet o.a. om je Serial input/output te verzorgen. Dus als je nooit uit je loop() call komt heb je kans dat hier ook niks gebeurd.
Not everybody wins, and certainly not everybody wins all the time.
But once you get into your boat, push off and tie into your shoes.
Then you have indeed won far more than those who have never tried.
@almightyarjen
Ik snap even niet wat je met die do - while loop wil bereiken, maar mij lijkt het beter om dit zo op te lossen:
Ik snap even niet wat je met die do - while loop wil bereiken, maar mij lijkt het beter om dit zo op te lossen:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| int Sensor2 = 10; bool ValSensor2; void setup() { Serial.begin(9600); pinMode(Sensor2, INPUT); } void loop() { Serial.println("Test"); delay(1000); do { //ValSensor1=digitalRead(Sensor1); if(digitalRead(Sensor2) == HIGH){ ValSensor2 = true; delay(10); } else{ ValSensor2 = false; } } while(ValSensor2 == true); } |
Verwijderd
Ik heb weer iets geks.
heb een bestaande schakeling met een Arduino nano.. op het printje staat V3.0
als ik die aansluit zie ik dit onder devices en alles werkt :

gisteren kreeg ik een 'China' nano binnen, daar staat op het printje V4.0 :

hij boot met blink dus dat werkt.
kan/mag ik nu conluderen dat :
- de ftdi chip kapot is op het nieuwe printje
- er verschil is qua hardware tussen versie V3.0 en V4.0
JA DUS !
heb een bestaande schakeling met een Arduino nano.. op het printje staat V3.0
als ik die aansluit zie ik dit onder devices en alles werkt :

gisteren kreeg ik een 'China' nano binnen, daar staat op het printje V4.0 :

hij boot met blink dus dat werkt.
kan/mag ik nu conluderen dat :
- de ftdi chip kapot is op het nieuwe printje
- er verschil is qua hardware tussen versie V3.0 en V4.0
[ Voor 4% gewijzigd door Verwijderd op 19-01-2014 22:36 ]
zit geen ftdi op geloof ik
There is also an Arduino Nano V4.0 around which uses a Profilic PL-2303HX USB-to-Serial chip (instead of the FTDI FT232RL). Hence the host computer needs a different driver. The board is from china and is labeld "Deek-Robot". Otherwise it works just fine. -mattzz
http://arduino.cc/en/Main/arduinoBoardNano
Vandaag mega2560 in gebruik genomen, uur bezig geweest met driver totdat ik dit tegenkwam (ik heb windows 7/64)
http://thegeekoftheworld....s-install/comment-page-1/
There is also an Arduino Nano V4.0 around which uses a Profilic PL-2303HX USB-to-Serial chip (instead of the FTDI FT232RL). Hence the host computer needs a different driver. The board is from china and is labeld "Deek-Robot". Otherwise it works just fine. -mattzz
http://arduino.cc/en/Main/arduinoBoardNano
Vandaag mega2560 in gebruik genomen, uur bezig geweest met driver totdat ik dit tegenkwam (ik heb windows 7/64)
http://thegeekoftheworld....s-install/comment-page-1/
[ Voor 4% gewijzigd door kitao op 19-01-2014 18:15 ]
Vraag het hardware/device ID eens op? Eigenschappen apparaat -> tab detailsVerwijderd schreef op zondag 19 januari 2014 @ 17:51:
Ik heb weer iets geks.
heb een bestaande schakeling met een Arduino nano.. op het printje staat V3.0
als ik die aansluit zie ik dit onder devices en alles werkt :
[afbeelding]
gisteren kreeg ik een 'China' nano binnen, daar staat op het printje V4.0 :
[afbeelding]
hij boot met blink dus dat werkt.
kan/mag ik nu conluderen dat :
- de ftdi chip kapot is op het nieuwe printje
- er verschil is qua hardware tussen versie V3.0 en V4.0

Dan kunnen we achterhalen welke chip erop zit.
De pagina verwijst niet op een juiste manier doorkitao schreef op zondag 19 januari 2014 @ 18:14:
Vandaag mega2560 in gebruik genomen, uur bezig geweest met driver totdat ik dit tegenkwam (ik heb windows 7/64)
http://thegeekoftheworld....s-install/comment-page-1/
Firefox heeft vastgesteld dat de server het verzoek voor dit adres doorverwijst op een manier die nooit zal eindigen.
Ik heb geen problemen gehad bij het werkend krijgen van mijn Mega
Volgens mij heb ik daar "CDM 2.08.24 WHQL Certified.zip" voor gebruikt, op 7x64.
[ Voor 98% gewijzigd door Raven op 19-01-2014 18:20 ]
After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
Als er een namaak prolific ftdi chip op die china nano zit, dan is er best een redelijke kans dat de prolific drivers (win8?) de namaak detecteren en niet werken. Oplossing kan dan zijn oude drivers op te snorren en die te gebruiken. (Is alleen op win7 een oplossing, denk ik, zelf ben ik het nog niet tegengekomen).Verwijderd schreef op zondag 19 januari 2014 @ 17:51:
gisteren kreeg ik een 'China' nano binnen, daar staat op het printje V4.0 :
- de ftdi chip kapot is op het nieuwe printje
4,8kW ZO-NW PVOutput 8x300Wp ZO 12 graden. 8x300Wp NW 12 graden.
Tja, het werkt nu al sinds vanmorgen, hello world draait nu op 44780 display en ik heb gewoon die site gevolgd. Ging prima.Raven schreef op zondag 19 januari 2014 @ 18:15:
De pagina verwijst niet op een juiste manier door
Firefox heeft vastgesteld dat de server het verzoek voor dit adres doorverwijst op een manier die nooit zal eindigen.
Ik heb geen problemen gehad bij het werkend krijgen van mijn Mega
Volgens mij heb ik daar "CDM 2.08.24 WHQL Certified.zip" voor gebruikt, op 7x64.
Maar er schijnen echt best grote verschillen te zijn in welk OS je gebruikt. (vooral bij mijn W7/64 zag je het hele net vol staan met vragen.
En nog leuker, ik ben ineens m'n scroll-pijltjes kwijt van de sidebar. Staat ook hele net mee vol. Maar heeft niks met arduino te maken.
Anyay, mijn eerste post hierover lijkt me wel duidelijk, Borroz heeft gewoon andere driver nodig want er zit geen ftdi op.
(als die schrijver gelijk heeft tenminste)
Verwijderd
- bij de (oude) werkende nano v3.0 zegt die USB device en bij de niet werkende Prolific USB to serial com port (! missing driver)Raven schreef op zondag 19 januari 2014 @ 18:15:
[...]
Vraag het hardware/device ID eens op? Eigenschappen apparaat -> tab details
[afbeelding]
Dan kunnen we achterhalen welke chip erop zit.
[...]
De pagina verwijst niet op een juiste manier door
Firefox heeft vastgesteld dat de server het verzoek voor dit adres doorverwijst op een manier die nooit zal eindigen.
Ik heb geen problemen gehad bij het werkend krijgen van mijn Mega
Volgens mij heb ik daar "CDM 2.08.24 WHQL Certified.zip" voor gebruikt, op 7x64.
- ik draai win 8.1 pro 64 en blijkbaar zijn er geen profilic drivers voor de arduino nano met die chip.
heb al een berichtje gestuurd naar de webshop

en Kitao had ook gelijk.. ' The board is from china and is labeld "Deek-Robot" '
onder win 7 draaide alles maar ik heb een update gedaan na een crash + groot onderhoud.
ik vrees dat ik nu ook problemen heb met mijn portofoon software.. maar ben het even zat..pffff
[ Voor 8% gewijzigd door Verwijderd op 19-01-2014 19:13 ]
Of bedoel je dit gedeelte dat niet goed doorverwijst , over SDK ?Raven schreef op zondag 19 januari 2014 @ 18:15:
De pagina verwijst niet op een juiste manier door
Firefox heeft vastgesteld dat de server het verzoek voor dit adres doorverwijst op een manier die nooit zal eindigen.
Arduino SDK: http://arduino.cc/en/Main/Software (Free).
State of the art computer running: Windows 7 (You have one right?).
Beer ICEE! (Must have…. Ohh and buy me one *Donate*).
First you will need to Download the SDK Go to their site and find it… (Make sure its for Windows 7).
Next you will need to unzip it I put it in “My Documents” folder.
http://thegeekoftheworld....s-install/comment-page-1/
Dat heb ik wel overgeslagen in de veronderstelling dat ik die software al heb. Voor de rest gewoon het rijtje afgelopen wat daar staat.
[ Voor 4% gewijzigd door kitao op 19-01-2014 18:59 ]
Prolific zijn al de namaak chipsvliegnerd schreef op zondag 19 januari 2014 @ 18:19:
[...]
Als er een namaak prolific ftdi chip op die china nano zit, dan is er best een redelijke kans dat de prolific drivers (win8?) de namaak detecteren en niet werken. Oplossing kan dan zijn oude drivers op te snorren en die te gebruiken. (Is alleen op win7 een oplossing, denk ik, zelf ben ik het nog niet tegengekomen).
Maar veel van hun drivers installeren niet via windows update, dus je moet ze zelf installeren.
Of boot even naar Linux. Gekut met drivers altijd in windows

Verwijderd
idd.. onder Linux + Arduino IDE draait die wel gelijkmcDavid schreef op zondag 19 januari 2014 @ 20:02:
Of boot even naar Linux. Gekut met drivers altijd in windows
[ Voor 66% gewijzigd door Verwijderd op 21-01-2014 11:23 ]
Op mijn werk is de combinatie printerdrivers en Linux altijd hilarischmcDavid schreef op zondag 19 januari 2014 @ 20:02:
Of boot even naar Linux. Gekut met drivers altijd in windows
Dat vroeg ik nietVerwijderd schreef op zondag 19 januari 2014 @ 18:41:
[...]
- bij de (oude) werkende nano v3.0 zegt die USB device en bij de niet werkende Prolific USB to serial com port (! missing driver)
- ik draai win 8.1 pro 64 en blijkbaar zijn er geen profilic drivers voor de arduino nano met die chip.
heb al een berichtje gestuurd naar de webshopwant ik heb er nog meer in bestelling staan en ik wil gewoon 'de oude'..
en Kitao had ook gelijk.. ' The board is from china and is labeld "Deek-Robot" '
onder win 7 draaide alles maar ik heb een update gedaan na een crash + groot onderhoud.
ik vrees dat ik nu ook problemen heb met mijn portofoon software.. maar ben het even zat..pffff
Die melding kwam van Firefox, die wilde de pagina niet laden en gaf de genoemde melding toen ik http://thegeekoftheworld....s-install/comment-page-1/ probeerde te openen. Melding komt nu nog steeds.kitao schreef op zondag 19 januari 2014 @ 18:57:
[...]
Of bedoel je dit gedeelte dat niet goed doorverwijst , over SDK ?
Arduino SDK: http://arduino.cc/en/Main/Software (Free).
State of the art computer running: Windows 7 (You have one right?).
Beer ICEE! (Must have…. Ohh and buy me one *Donate*).
First you will need to Download the SDK Go to their site and find it… (Make sure its for Windows 7).
Next you will need to unzip it I put it in “My Documents” folder.
http://thegeekoftheworld....s-install/comment-page-1/
Dat heb ik wel overgeslagen in de veronderstelling dat ik die software al heb. Voor de rest gewoon het rijtje afgelopen wat daar staat.
After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
Ziet er goed uit, leuk gemaakt, past mooi bij de rest.
Verwijderd
en jij dacht dat ik niet gelijk die drivers had gedownload/getestRaven schreef op zondag 19 januari 2014 @ 22:30:
[...]
deze opmerking: "Windows 8/8.1 are NOT supported in PL-2303HXA and PL-2303X EOL chip versions." Als je nou het hardware ID geeft, kunnen we uitzoeken of het om die uitzondering gaat.
ik zal nog ff kijken naar dat HW ID maar mij is het inmiddels wel duidelijk .. zeker nu ik onder linux wel kan uploaden naar datzelfde bordje.
de les is dus.. gebruik je win 8 / 8.1 en wil je een arduino nano kopen.. neem er dan 1 met een FTDI chip
Dat snap ik, maar hoe weet je dat het die driver moet zijn? Ik bedoel, weet je zeker dat er een PL2303 op de Nano zit? Als je het hardware ID hebt, kun je op http://pcidatabase.com/ de gegevens er bij zoeken en dat nakijken, wie weet zit er een andere chip op.
[ Voor 11% gewijzigd door Raven op 19-01-2014 22:38 ]
After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
Ok.Raven schreef op zondag 19 januari 2014 @ 22:30:
Die melding kwam van Firefox, die wilde de pagina niet laden en gaf de genoemde melding toen ik http://thegeekoftheworld....s-install/comment-page-1/ probeerde te openen. Melding komt nu nog steeds.
Zal je misschien niet geloven maar ik heb er paar uur geleden ook firefox opgezet en chrome eraf gejast na de tigste crash en het zonder te vragen het verwijderen van de scroll-pijltjes. Maar bij mij laadt die link gewoon hoor.
Chrome geeft hetzelfde aan en IE11 geeft de nietszeggende fout "Deze pagina kan niet worden weergegeven". Via hidemyass krijg ik wél de site te zien
[ Voor 17% gewijzigd door Raven op 19-01-2014 22:58 ]
After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
Met klein trucje krijg je de drivers wel aan de praat op win8 machine.Raven schreef op zondag 19 januari 2014 @ 22:30:
[...]
Dat vroeg ik nietMbv van het gevraagde hardware ID kun je proberen te achterhalen welke chip er op zit en mbv die gegevens de juiste driver zoeken. En de pagina die jij noemt geeft aan dat W8(.1) wél ondersteund is, maar wel met deze opmerking: "Windows 8/8.1 are NOT supported in PL-2303HXA and PL-2303X EOL chip versions." Als je nou het hardware ID geeft, kunnen we uitzoeken of het om die uitzondering gaat.
http://www.airdevilaccess...8+Driver+Installation.pdf
Verwijderd
Raven schreef op zondag 19 januari 2014 @ 22:37:
Dat snap ik, maar hoe weet je dat het die driver moet zijn? Ik bedoel, weet je zeker dat er een PL2303 op de Nano zit? Als je het hardware ID hebt, kun je op http://pcidatabase.com/ de gegevens er bij zoeken en dat nakijken, wie weet zit er een andere chip op.

[ Voor 11% gewijzigd door Verwijderd op 20-01-2014 11:49 ]
Chip Number: 2303 HXA. Dat is dus inderdaad die ene versie die niet ondersteund wordt.... Maar zie het bericht boven die van jou, blijkbaar is er een oplossing?
After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
Verwijderd
tnx ga ik is ff doorlezen, en deze:mad_max234 schreef op zondag 19 januari 2014 @ 23:02:
[...]
Met klein trucje krijg je de drivers wel aan de praat op win8 machine.
http://www.airdevilaccess...8+Driver+Installation.pdf
How Can I Install Hardware with Unsigned Drivers in Windows 8?
* inmiddels V1.2 van mijn matrixklokkie ready.. groene leds+rookglas werkt beter dan rode+fotopapier
[YouTube: http://www.youtube.com/watch?v=__xIaQogZ1E&feature=youtu.be]
[ Voor 37% gewijzigd door Verwijderd op 20-01-2014 11:21 ]
Mijn laatste toevoeging aan mijn telefoon projectje: battery level check.
Mijn project draait op 5 volt vanuit een 12v batterij via een latching power switch en een 5v regulator. Ik had nog een analoge pin vrij op mijn atmega, dus heb ik een resistor divider toegevoegd aan het schema om de 12v lijn te kunnen meten vóór de regulator. De regulator kan nog werken tot zo een 7.5v (laatste drupjes power hoor) dus via een
kan ik bepalen of ik de 'recharge' icoon moet tonen. Overigens in mijn voltage divider was ruimer (kan tot 24v aan: MAX_VBAT = 24) om het pinnetje te beschermen tegen overbelasting.
Mijn project draait op 5 volt vanuit een 12v batterij via een latching power switch en een 5v regulator. Ik had nog een analoge pin vrij op mijn atmega, dus heb ik een resistor divider toegevoegd aan het schema om de 12v lijn te kunnen meten vóór de regulator. De regulator kan nog werken tot zo een 7.5v (laatste drupjes power hoor) dus via een
code:
1
2
3
| int value = digitalRead(PIN_VBAT); float voltage = value * VBAT_RATIO; // (5 / MAX_VBAT) / 1023 bool needsCharging = (voltage < 10); |
kan ik bepalen of ik de 'recharge' icoon moet tonen. Overigens in mijn voltage divider was ruimer (kan tot 24v aan: MAX_VBAT = 24) om het pinnetje te beschermen tegen overbelasting.
| Mijn joystick / simpit project | Blog | Elite Dangerous CMDR Cataclysm72
Groot voordeel als je al kunt programmeren Rob, ik ben bezig geweest met het volgende uit te zoeken en zonder goede kennis van programmaschrijven duurde dit langer als verwacht.
Het gaat om een voorbeeld op Tronixstuff in Hfdst.6 van een 7-segment-display aangestuurd door een 74HC595 (zie halverwege deze pagina) :
De bedoeling was om het display op de pinnen Q0 -> Q7 van de 595 aan te sluiten en vervolgens de getallen 0 t/m 9 weer te geven zonder decimale punt.
Normaal is zo’n display als volgt ingedeeld :

Dan staat in de gegeven sketch van Tronix (te downloaden op diezelfde pagina) de volgende lijn :
int segdisp[10] = { 238,72,214,220,120,188,190,200,254,252}; // base 10 equivalents for digits 0~9
Ik heb dat programma ingevoerd maar kreeg enkel rare tekens te zien op mijn display. Blijkt dus achteraf dat het display op Tronix heel vreemd is aangesloten.
Voorbeeld: neem het eerste getal 238 dat op het display het getal 0 moet weergeven zonder decimale punt. Dat is binair vertaald 1 1 1 0 1 1 1 0.
Stel we houden de volgorde aan van Q0 = LSB en Q7 = MSB dan is dus Q0 aangesloten op de decimale punt of op segment G, óf Q4 is aangesloten op de decimale punt of op segment G. (Dat zijn namelijk de enige lampjes die niet branden als het getal 0 wordt weergegeven.)
Uiteindelijk de aansluitvolgorde kunnen vinden: dat is van links naar rechts en van Q7 tot Q0 als volgt :
Dan vraag ik me af, wie sluit zoiets nu aan in die volgorde en doet die schrijver dat expres om er een soort puzzle van te maken ?!!
Uiteraard heb ik niet alle draden verwisseld om dit uit te pluizen maar de sketch aangepast. Kwam ook nog eens bij dat mijn display geen doorverbonden segmenten heeft, dus deze heeft maar liefst 36 aansluitpinnen hetgeen het verwisselen onpraktisch maakt. (zie foto)
klik
(Mega zit vastgeschroefd op een dekseltje, ik heb nog niet zo’n mooi beschermkastje)
In mijn opstelling heb ik de segmenten A,B,C,D,E,F,G,DP respectievelijk aangesloten op Q0 t/m Q7.
Dat geeft dan de volgende wijzigingen ten opzichte van het originele programma wat onder de video staat.
Met die wijzigingen krijg ik precies hetzelfde resultaat als op deze video :
Enkele relevante stukjes uit het originele programma met de onoverzichtelijke aansluitvolgorde :
Het gaat om een voorbeeld op Tronixstuff in Hfdst.6 van een 7-segment-display aangestuurd door een 74HC595 (zie halverwege deze pagina) :
De bedoeling was om het display op de pinnen Q0 -> Q7 van de 595 aan te sluiten en vervolgens de getallen 0 t/m 9 weer te geven zonder decimale punt.
Normaal is zo’n display als volgt ingedeeld :

Dan staat in de gegeven sketch van Tronix (te downloaden op diezelfde pagina) de volgende lijn :
int segdisp[10] = { 238,72,214,220,120,188,190,200,254,252}; // base 10 equivalents for digits 0~9
Ik heb dat programma ingevoerd maar kreeg enkel rare tekens te zien op mijn display. Blijkt dus achteraf dat het display op Tronix heel vreemd is aangesloten.
Voorbeeld: neem het eerste getal 238 dat op het display het getal 0 moet weergeven zonder decimale punt. Dat is binair vertaald 1 1 1 0 1 1 1 0.
Stel we houden de volgorde aan van Q0 = LSB en Q7 = MSB dan is dus Q0 aangesloten op de decimale punt of op segment G, óf Q4 is aangesloten op de decimale punt of op segment G. (Dat zijn namelijk de enige lampjes die niet branden als het getal 0 wordt weergegeven.)
Uiteindelijk de aansluitvolgorde kunnen vinden: dat is van links naar rechts en van Q7 tot Q0 als volgt :
spoiler:
A, B, F, G, C, D, E, DP
Oftewel Q7=A en Q0=DP, etc.
Oftewel Q7=A en Q0=DP, etc.
Dan vraag ik me af, wie sluit zoiets nu aan in die volgorde en doet die schrijver dat expres om er een soort puzzle van te maken ?!!
Uiteraard heb ik niet alle draden verwisseld om dit uit te pluizen maar de sketch aangepast. Kwam ook nog eens bij dat mijn display geen doorverbonden segmenten heeft, dus deze heeft maar liefst 36 aansluitpinnen hetgeen het verwisselen onpraktisch maakt. (zie foto)

(Mega zit vastgeschroefd op een dekseltje, ik heb nog niet zo’n mooi beschermkastje)
In mijn opstelling heb ik de segmenten A,B,C,D,E,F,G,DP respectievelijk aangesloten op Q0 t/m Q7.
Dat geeft dan de volgende wijzigingen ten opzichte van het originele programma wat onder de video staat.
C++:
1
2
3
| int segdisp[10] = { 63,6,91,79,102,109,125,7,127,111 }; // base 10 equivalents for digits 0~9 shiftOut(datapin, clockpin, MSBFIRST, segdisp[digit]+128); // originele programma geeft +1 shiftOut(datapin, clockpin, MSBFIRST, 128); // originele programma geeft 1 |
Met die wijzigingen krijg ik precies hetzelfde resultaat als op deze video :
Enkele relevante stukjes uit het originele programma met de onoverzichtelijke aansluitvolgorde :
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| int segdisp[10] = { 238,72,214,220,120,188,190,200,254,252}; // base 10 equivalents for digits 0~9 int posdisp[4] = { 1,2,4,8}; // base 10 equivalents to close cathodes on display 0~3 on module void digitpointdisplay(int digit, int location) // displays "digit" on display "location" 0~3 with the decimal point { digitalWrite(latchpin, LOW); shiftOut(datapin, clockpin, MSBFIRST, posdisp[location]); // sets the digit to address shiftOut(datapin, clockpin, MSBFIRST, segdisp[digit]+1); // clears the digit digitalWrite(latchpin, HIGH); } void decpointdisplay(int location) // displays "digit" on display "location" 0~3 with the decimal point { digitalWrite(latchpin, LOW); shiftOut(datapin, clockpin, MSBFIRST, posdisp[location]); // sets the digit to address shiftOut(datapin, clockpin, MSBFIRST, 1); // clears the digit digitalWrite(latchpin, HIGH); } |
[ Voor 69% gewijzigd door kitao op 26-01-2014 04:47 . Reden: opmaak/typo/code ingekort ]
zie de comments op deze pagina4Real schreef op zaterdag 18 januari 2014 @ 12:54:
[...]
Ja inkoop foutje ik dacht shift-register is shift-register. Zal vanmiddag eens bij de elektronicaboer buurten of hij die ook heeft. Anders zal ik er inderdaad eens paar bestellen, want ze kosten geen drol. Toch moet het niet uit maken wat voor shift-register ik heb, want volgens mij is hij aangesloten de resultaten zijn gewoon vaag.
Mr Guy says:
June 24, 2011 at 9:31 am
Hi..
i have a question about the 74HC595. How can you read inputs plugged in it? i want to plug a matrix 4×4 keypad…
thank you for your answer…..
John Boxall says:
June 24, 2011 at 9:40 am
The 74HC595 is parallel output only, and not suitable for the application.
Ja, de volgorde van die pinnetjes is een drama, maar gelukkig kan je dat prima binvloeden door de draadjes op de juist e manier te verbinden, óf door de bitvolgorde zelf in te stellen (decimale cijfers zijn hier écht onhandig. Ik gebruik de binaire notatie graag in dit soort gevallen. 0b11001001 bijvoorbeeld.
| Mijn joystick / simpit project | Blog | Elite Dangerous CMDR Cataclysm72
Ik gebruik ook veel bytes geschreven in bit waarde, is vaak veel overzichtelijker, ziet met enkele oog opslag welke pinnen hoog en laag worden, hex en dec zijn voor mensen veel lastiger, moet alles of omrekenen of in je hoofd hebben zitten. In dit geval sluit bit waarde heel goed aan bij functie die de waarde moet uitvoeren, voor instellen van registers is het ook handig, als je klaar ben kan je ze altijd nog vervangen voor hex of dec als je dat mooier vind, maar met testen is bit waarde veel makkelijker imo.
Weet iemand toevallig hoe ver het TTL-signaal van een Arduino's serial output kan komen over een kabel? Google geeft geen duidelijk antwoord, de meningen zijn nogal verdeeld. Nou kan ik het wel gaan testen, maar om nou kabels te gaan verknippen voor een paar testjes 
En anders http://daverobertson63.wo...ard-max3232-with-arduino/ maar proberen.
En anders http://daverobertson63.wo...ard-max3232-with-arduino/ maar proberen.
After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
een paar meter zal wel lukken denk ik. Eventueel baud-rate wat lager zetten.
Vreemd dit. Ik had het volgende aangesloten :

(zijn 8 transistoren, niet 1)
http://tronixstuff.com/20...ith-arduino-chapter-nine/
Dit is de pinlayout van de shifters :
Q1 1 parallel data output 1
Q2 2 parallel data output 2
Q3 3 parallel data output 3
Q4 4 parallel data output 4
Q5 5 parallel data output 5
Q6 6 parallel data output 6
Q7 7 parallel data output 7
GND 8 ground (0 V)
Q7S 9 serial data output
MR 10 master reset (active LOW)
SHCP 11 shift register clock input
STCP 12 storage register clock input
OE 13 output enable input (active LOW)
DS 14 serial data input
Q0 15 parallel data output 0
VCC 16 supply voltage
Ik maakte een foutje in de bedrading en achteraf blijkt dat het niets uitmaakt of de voedingspin 16 wordt aangesloten of niet; althans in deze situatie.
Je zou toch denken dat alles dan meteen stilvalt ???

(zijn 8 transistoren, niet 1)
http://tronixstuff.com/20...ith-arduino-chapter-nine/
Dit is de pinlayout van de shifters :
Q1 1 parallel data output 1
Q2 2 parallel data output 2
Q3 3 parallel data output 3
Q4 4 parallel data output 4
Q5 5 parallel data output 5
Q6 6 parallel data output 6
Q7 7 parallel data output 7
GND 8 ground (0 V)
Q7S 9 serial data output
MR 10 master reset (active LOW)
SHCP 11 shift register clock input
STCP 12 storage register clock input
OE 13 output enable input (active LOW)
DS 14 serial data input
Q0 15 parallel data output 0
VCC 16 supply voltage
Ik maakte een foutje in de bedrading en achteraf blijkt dat het niets uitmaakt of de voedingspin 16 wordt aangesloten of niet; althans in deze situatie.
Je zou toch denken dat alles dan meteen stilvalt ???
[ Voor 1% gewijzigd door kitao op 31-01-2014 09:28 . Reden: afb. resize ]
Je weet dat schema's niet makkelijker te lezen zijn op zijn kant
.
16 was niet aangesloten, maar 10 wel? Er zitten waarschijnlijk protectie diodes in van elke pin naar de voeding. Dus als de voeding niet is aangesloten, maar er wel altijd een hoog signaal op een ingang staat, dan komt de voeding via die protectie diode alsnog naarbinnnen. Niet de manier waarop je het wilt doen, ook als je een IC denkt uit te schakelen door zijn voeding eraf te halen kan dat ook nogal onverwachte resultaten geven.
Ik had bijvoorbeeld tijdje geleden een bord gekregen met SD kaart lezer erop, en een pin werd gebruikt om de voeding van de SD kaart te schakelen. Daarnaast zat er ook nog een externe protectie IC op, met dus puur van die diodes. Gezien me niet was verteld in welke stand de voeding aan stond, en de documentatie nog niet beschikbaar was, was dat gewoon uitproberen voor mij. In de uit-stand kon ik nog wat basis communicatie krijgen met de SD kaart, simpelweg omdat als maar één input pin hoog was zijn voedingsontkoppelings condensator weer opgeladen werd. Niet geheel verrassend was het niet voldoende voor volledige communicatie.
16 was niet aangesloten, maar 10 wel? Er zitten waarschijnlijk protectie diodes in van elke pin naar de voeding. Dus als de voeding niet is aangesloten, maar er wel altijd een hoog signaal op een ingang staat, dan komt de voeding via die protectie diode alsnog naarbinnnen. Niet de manier waarop je het wilt doen, ook als je een IC denkt uit te schakelen door zijn voeding eraf te halen kan dat ook nogal onverwachte resultaten geven.
Ik had bijvoorbeeld tijdje geleden een bord gekregen met SD kaart lezer erop, en een pin werd gebruikt om de voeding van de SD kaart te schakelen. Daarnaast zat er ook nog een externe protectie IC op, met dus puur van die diodes. Gezien me niet was verteld in welke stand de voeding aan stond, en de documentatie nog niet beschikbaar was, was dat gewoon uitproberen voor mij. In de uit-stand kon ik nog wat basis communicatie krijgen met de SD kaart, simpelweg omdat als maar één input pin hoog was zijn voedingsontkoppelings condensator weer opgeladen werd. Niet geheel verrassend was het niet voldoende voor volledige communicatie.
Pin 10 moet inderdaad aangesloten blijven, als die ook wordt verwijderd is het einde oefening. Ik had dus al een vermoeden dat het IC via pin 10 werd gevoed maar hoe of wat was me niet duidelijk. Jouw uitleg heeft dit duidelijk gemaakt, bedankt.
Ik heb de tekening geroteerd inmiddels via paint. Ging wel beetje ten koste van de leesbaarheid
klik
Ik heb de tekening geroteerd inmiddels via paint. Ging wel beetje ten koste van de leesbaarheid

Deed de leesbaarheid geen goed. Meen je nou serieus dat je moeite hebt met het roteren van een afbeelding?kitao schreef op vrijdag 31 januari 2014 @ 10:16:
Ik heb de tekening geroteerd inmiddels via paint. Ging wel beetje ten koste van de leesbaarheid
| Mijn joystick / simpit project | Blog | Elite Dangerous CMDR Cataclysm72
Windows afbeeldingen viewer kan ook roteren, die doet het wel goed (en slaat het geroteerde op, of je het nu wilt of niet)
Die viewer heb je niet eens nodig: Klik met de rechtermuisknop op het bestand, linksom draaien, klaar:

After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
En je moet het ook niet zo op zijn kant opbouwen want dan vallen alle elektronen eruit, meest gemaakte fout, chip op zijn kop houden zodat elektronen eruit vallen.Sissors schreef op vrijdag 31 januari 2014 @ 09:53:
Je weet dat schema's niet makkelijker te lezen zijn op zijn kant.
Zojuist heb ik een HD44780 16*2 display aan een Nano gehangen met dit als test-sketch dat ik ergens vond:
Nou vraag ik mij af waarom de verstreken tijd afgerond op hele secondes worden weergeven, dus zonder tienden, honderdsten en duizendsten achter de (ook afwezige) komma.
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| #include <LiquidCrystal.h> // initialize the library with the numbers of the interface pins LiquidCrystal lcd(7, 8, 3 , 4, 5, 6); //RS+EN-DB4-DB5-DB6-DB7 void setup() { // set up the LCD's number of columns and rows: lcd.begin(16, 2); // Print a message to the LCD. lcd.print("Hello world!"); } void loop() { // set the cursor to column 0, line 1 // (note: line 1 is the second row, since counting begins with 0): lcd.setCursor(0, 1); // print the number of seconds since reset: lcd.print(millis()/1000); } |
Nou vraag ik mij af waarom de verstreken tijd afgerond op hele secondes worden weergeven, dus zonder tienden, honderdsten en duizendsten achter de (ook afwezige) komma.
After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
Milli = 1/1000
Je deel dus millis steeds door 1000, omdat millis() zijn waarde in een unsigned long integer terug geeft zal lcd.print het als integer weergeven, en dus alleen in hele getallen tellen.
Wat wil je?
Alle ms weergeven of achter de komma getallen zien?
Eerste geval moet je de /1000 weghalen.
In tweede geval moet je long eerst naar float casten zodat lcd.print het als float weergeeft.
Denk dat dit wel werkt, heb geen tijd om het te testen.
C:
1
| lcd.print(millis()/1000); |
Je deel dus millis steeds door 1000, omdat millis() zijn waarde in een unsigned long integer terug geeft zal lcd.print het als integer weergeven, en dus alleen in hele getallen tellen.
Wat wil je?
Alle ms weergeven of achter de komma getallen zien?
Eerste geval moet je de /1000 weghalen.
In tweede geval moet je long eerst naar float casten zodat lcd.print het als float weergeeft.
Denk dat dit wel werkt, heb geen tijd om het te testen.
C:
1
| lcd.print((float)millis()/1000); |
[ Voor 3% gewijzigd door mad_max234 op 15-02-2014 17:37 ]
Was gewoon nieuwsgierig waarom
Niet aan gedacht dat het een integer was, dat verklaart het wel ja.
Net even getest
laat inderdaad getallen (2) achter de komma zien, thanks! Weet ik meteen hoe dat moet
Net even getest
C++:
1
| lcd.print((float)millis()/1000); |
laat inderdaad getallen (2) achter de komma zien, thanks! Weet ik meteen hoe dat moet
After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
Dat het afgerond word naar twee getallen achter de komma ligt aan lcd.print.
Als het dezelfde lcd lib die ik wel eens gebruik dan heeft de volgende regel 4 getallen achter de komma.
Edit/
Dat was fout, is onderdeel van Print functie die bepaald hoeveel getallen er achter de komma word weergegeven. Bij alles wat .print gebruikt zal het werken, het zal onder andere ook werken bij serial.
Als het dezelfde lcd lib die ik wel eens gebruik dan heeft de volgende regel 4 getallen achter de komma.
C:
1
| lcd.print((float)millis()/1000), 4); |
Edit/
Dat was fout, is onderdeel van Print functie die bepaald hoeveel getallen er achter de komma word weergegeven. Bij alles wat .print gebruikt zal het werken, het zal onder andere ook werken bij serial.
C:
1
| Serial.print((float)millis()/1000), 4); |
[ Voor 37% gewijzigd door mad_max234 op 15-02-2014 18:42 ]
Ik heb pas zo'n Neopixel stick besteld om mee te kloten op mijn Arduino. Dit kreeg ik binnen :

Op de site staat hij in een breadbord :

Misschien een hele stomme vraag, maar hoe krijg ik hem nou in mijn breadbord? Moet ik er dingen aan solderen?

Op de site staat hij in een breadbord :

Misschien een hele stomme vraag, maar hoe krijg ik hem nou in mijn breadbord? Moet ik er dingen aan solderen?
Owner of DBIT Consultancy | DJ BassBrewer
Je zou er een standaard header aan kunnen solderen aan 1 kant (ze zijn chainable). Gewoon plat erop leggen en dan solderen. (wel stukje van de lengte knippen zodat je genoeg ruimte op je pad hebt voor soldeer.
[ Voor 25% gewijzigd door CrashOverDrive op 16-02-2014 13:37 ]
Misschien een stomme vraag. Maar ik ben een al een tijdje aan het spelen met een arduino bordje om met een IR lees kop mijn stadsverwarming uit te lezen. Dit lukt allemaal redelijk. Veel spelen en googlen en je komt een eind.
Nu ben ik echter best lui en programmeer ik lekker op de grote pc in de woonkamer, mijn meterkast is natuurlijk super handig gemaakt in de gang. Dus daar een laptop neer gezet, arduino daarop aangesloten en alle software draait er ook prima. Nu neem ik via teamviewer de laptop over zodat ik de mijn nieuwe versies steeds op de arduino kan zetten.. Helaas.. werkt dit niet lekker en moet ik toch elke keer op de reset knop drukken van het bordje voordat ik waardes binnen krijg vanuit de software serial.. Is dat normaal? en zo ja, kan ik dit software matig?
Nu ben ik echter best lui en programmeer ik lekker op de grote pc in de woonkamer, mijn meterkast is natuurlijk super handig gemaakt in de gang. Dus daar een laptop neer gezet, arduino daarop aangesloten en alle software draait er ook prima. Nu neem ik via teamviewer de laptop over zodat ik de mijn nieuwe versies steeds op de arduino kan zetten.. Helaas.. werkt dit niet lekker en moet ik toch elke keer op de reset knop drukken van het bordje voordat ik waardes binnen krijg vanuit de software serial.. Is dat normaal? en zo ja, kan ik dit software matig?
Misschien kun je ipv een laptop met Teamviewer beter iets zoals http://karplus4arduino.wo...usb-cable-problem-solved/ gebruiken , werkt hier prima toen ik dat een tijdje terug testte.Als ik het mij goed herinner heb ik zowel een 15 als 30 meter cat6 kabel gebruikt. Beide werkt prima, al was er bij de 30m volgens mij wel een kleine spanningsval in de voeding, maar dat kun je indien nodig oplossen door de Arduino op een 9v adapter aan te sluiten.
Het resetten zou automatisch moeten gebeuren na het programmeren. Misschien helpt het verwijderen van Arduino uit apparaatbeheer en het opnieuw laten herkennen? Dat lost het probleem niet op, maar dan hoef je niet telkens naar de Arduino heen om op het reset knopje te drukken.
Het resetten zou automatisch moeten gebeuren na het programmeren. Misschien helpt het verwijderen van Arduino uit apparaatbeheer en het opnieuw laten herkennen? Dat lost het probleem niet op, maar dan hoef je niet telkens naar de Arduino heen om op het reset knopje te drukken.
[ Voor 48% gewijzigd door Raven op 17-02-2014 10:29 ]
After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
Zal eens kijken naar die lange USB kabel. Wie weet inderdaad. In de toekomst moet de arduino toch op het netwerk komen om zo de waarde op me nas op te slaan, dus als alles werkt is het probleem toch weg 
Ja, automatisch had ik ook verwacht, en ik dacht dat die dat eerder ook gewoon deed. Maar ja, zal alles eens verwijderen opnieuw installeren, wie weet
Ja, automatisch had ik ook verwacht, en ik dacht dat die dat eerder ook gewoon deed. Maar ja, zal alles eens verwijderen opnieuw installeren, wie weet
Even voor de duidelijkheid, je kan met die USB extender je Arduino NIET op het netwerk aansluiten, ookal wordt er een netwerkkabel gebruikt. Die kabel wordt gebruikt voor het verlengen van het USB signaal, je kan die dus niet op een switch of ander netwerkapparaat gebruiken. Dus Arduino -> USB-extender deel 1 -> netwerkkabel -> USB extender deel 2 -> pc. Er mag niks tussen zitten, zoals switches/hubs/routers etc.
Als je de Arduino echt met het netwerk wil verbinden moet je een ethernetshield gebruiken of een APC220 om de serial output/input draadloos met een pc te verbinden.
Als je de Arduino echt met het netwerk wil verbinden moet je een ethernetshield gebruiken of een APC220 om de serial output/input draadloos met een pc te verbinden.
[ Voor 14% gewijzigd door Raven op 17-02-2014 10:48 ]
After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
Watvoor Arduino is het?
Je kunt namelijk ook een reset-commando sturen vanaf je computer, daar zou je gewoon een kort scriptje voor kunnen maken dat je aanklikt. Hoe dat eruit zou moeten zien is afhankelijk van welke arduino je hebt.
Je kunt namelijk ook een reset-commando sturen vanaf je computer, daar zou je gewoon een kort scriptje voor kunnen maken dat je aanklikt. Hoe dat eruit zou moeten zien is afhankelijk van welke arduino je hebt.
@Raven, nee, dat snapte ik
Ik moet nog een netwerkshield kopen uit eindelijk inderdaad.
@mcDavid, het gaat om een arduino duemilanove
@mcDavid, het gaat om een arduino duemilanove
volgens mij zou (op een windows systeem) mode com1: dtr=off moeten werken om je arduino te resetten.
zie ook:
http://arduino.cc/en/Main...dDuemilanove#.UwILDPjyPFY bij Automatic (Software) Reset
http://www.microsoft.com/.../en-us/mode.mspx?mfr=true
zie ook:
http://arduino.cc/en/Main...dDuemilanove#.UwILDPjyPFY bij Automatic (Software) Reset
http://www.microsoft.com/.../en-us/mode.mspx?mfr=true
[ Voor 48% gewijzigd door mcDavid op 17-02-2014 14:14 ]
Ik zag 'm ook voorbij komen op instructables, ziet er goed uit! Er had alleen iets meer werk in de afwerking mogen zitten
druk en typefouten voorbehouden
"battery time is about 7 hrs at a normal status." , maar toch erg knap gedaan voor zo'n zelfbouw-smartwatch op klein formaat.
Er staat er ook een met ge-3d-printe case, kan nog wel een beter ontwerp gebruiken. Dit lijkt me niet draagbaar
Er staat er ook een met ge-3d-printe case, kan nog wel een beter ontwerp gebruiken. Dit lijkt me niet draagbaar

Fotografie: | Flickr | Canon 5DII + 20mm + 35mm + 50mm + 100mm || Hardlopen: Strava PR 5km: 20:26 10km: 44:35 HM 1:39:58
Verwijderd
ik heb net in een vlaag van 'dat wil ik ook' een bluetooth module op ebay gekocht voor een paar euro .. dus ff maandje geduld nog 
[ Voor 22% gewijzigd door Verwijderd op 18-02-2014 20:08 ]
Toch wel BLE hoop ik?
| Mijn joystick / simpit project | Blog | Elite Dangerous CMDR Cataclysm72
Heren (dames?), ik vroeg mij af hoe jullie met memory management op de arduino omgaan.
Ik ben bezig met een paar Arduino's welke draadloos communiceren via NRFL01's (dikke aanrader, super mooie, eenvoudige chippies, al helemaal icm de RF24 Arduino lib...), één Arduino hangt aan de PC en praat met een Python daemon.
Nu ben ik redelijk bedreven in C++/C, en daar gewend veel debug info te printen met printf etc.
Maar nu mijn code redelijk begint te vorderen kreeg ik opeens rare crashes, welke na enig onderzoek door geheugen te kort blijken te komen.
Hoe gaan jullie hiermee om? Ik speel nu met het idee om maar ouderwets foutcodes te definiëren, en deze door de Python daemon terug te laten vertalen naar human readable messages...
Edit: En nog iets, nu kwam ik toevallig een forum post tegen waar de oorzaak bij het geheugengebruik gelegd werd, anders was ik daar niet gaan zoeken.
Is er een manier om dat in de gaten te houden?
Ik ben bezig met een paar Arduino's welke draadloos communiceren via NRFL01's (dikke aanrader, super mooie, eenvoudige chippies, al helemaal icm de RF24 Arduino lib...), één Arduino hangt aan de PC en praat met een Python daemon.
Nu ben ik redelijk bedreven in C++/C, en daar gewend veel debug info te printen met printf etc.
Maar nu mijn code redelijk begint te vorderen kreeg ik opeens rare crashes, welke na enig onderzoek door geheugen te kort blijken te komen.
Hoe gaan jullie hiermee om? Ik speel nu met het idee om maar ouderwets foutcodes te definiëren, en deze door de Python daemon terug te laten vertalen naar human readable messages...
Edit: En nog iets, nu kwam ik toevallig een forum post tegen waar de oorzaak bij het geheugengebruik gelegd werd, anders was ik daar niet gaan zoeken.
Is er een manier om dat in de gaten te houden?
[ Voor 12% gewijzigd door DRAFTER86 op 18-02-2014 22:06 ]
Stopt Arduino niet printf debugs gewoon in flash? Als in er is geen enkele reden om die strings in SRAM te stoppen.
Gebruik in Arduino de F() macro voor debug strings zodat ze in flash staan.
code:
1
| Serial.print(F("test bericht")); |
| Mijn joystick / simpit project | Blog | Elite Dangerous CMDR Cataclysm72
Geen BLE dus. Werkt alleen voor Android of PC, niet voor iOS (maar dat wist je vast al)Verwijderd schreef op dinsdag 18 februari 2014 @ 21:58:
3,65 kost zo'n printje incl. verzenden vanuit china.
| Mijn joystick / simpit project | Blog | Elite Dangerous CMDR Cataclysm72
Verwijderd
nou heb ik geen android en ik was eigenlijk ook niet van plan om er zo'n smartwatch mee te bouwen
maar live data draadloos streamen vanaf de PC (labview?) vice versa
en nee.. weet niet wat BLE is.. bluetooth/arduino is nieuw terrein voor mij
ik heb overigens 2 printjes besteld.. 1 x HC 05 en 1 x HC 06
maar live data draadloos streamen vanaf de PC (labview?) vice versa
en nee.. weet niet wat BLE is.. bluetooth/arduino is nieuw terrein voor mij
ik heb overigens 2 printjes besteld.. 1 x HC 05 en 1 x HC 06
[ Voor 31% gewijzigd door Verwijderd op 19-02-2014 08:27 ]