en wat doet de code .. bij mij werkte die wel hoor
[ Voor 72% gewijzigd door Anoniem: 187449 op 28-12-2013 15:28 ]
Anoniem: 187449
[ Voor 72% gewijzigd door Anoniem: 187449 op 28-12-2013 15:28 ]
Anoniem: 187449
[ Voor 3% gewijzigd door mad_max234 op 28-12-2013 16:36 ]
Anoniem: 187449
lang verhaal kort.. hij werkt numad_max234 schreef op zaterdag 28 december 2013 @ 16:34:
Deed sd lib het niet? Had hem van de week gelijk werkend, out of the box, had dat even getest met bmp en tft. Zover ik weet zit er geen verschil in sd kaart lezers, zijn allemaal domme printjes zonder IC's(op soms een voltage regulator na) die allemaal hetzelfde zijn. Denk dat er dan iets fysiek fout heeft gezeten, kan bijna niet anders wat er is verder niks aanwezig. Of je probeerde met 5v de sd kaart aan te sturen, dan wilt 3.3v device nog wel eens weigeren, had van de week ook met tft, 5v met weerstanden(als protectie) was no go.
[ Voor 27% gewijzigd door alexandersamson op 28-12-2013 16:48 ]
Elektronicaprojecten van mij: http://www.gm7.nl
Anoniem: 187449
[ Voor 15% gewijzigd door Anoniem: 187449 op 28-12-2013 16:55 ]
Hmm, dacht ik al... Het zal eenvoudiger zijn het op te splitsen over 2 arduino's denk ik.Anoniem: 187449 schreef op dinsdag 24 december 2013 @ 17:43:
beide stukjes code zijn nogal timings gevoelig en laten zich niet (eenvoudig) combineren
op het moment dat je in je interrupt routine komt staat de millis teller in de 'openenergymonitor stil
[ Voor 8% gewijzigd door Promy op 28-12-2013 17:21 ]
Anoniem: 187449
SPI is serial verbinding, en geen parallelle, timing kan dus bijna nooit probleem vormen, tot 1 meter moet spi gewoon werken, of nu sd kaart is of ethernet, of wat dan ook. SPI is SPI. En timing probleem ontstaan meestal door kabels of traces die niet gelijke lengte hebben, als alle kabel even lang zijn heeft alel data ook dezelfde vertraging en is er geen timing verschil, maar dan hebben we het meestal over RAM of iets, wat op zeer hoge snelheid werken bij parallel verbindingen.alexandersamson schreef op zaterdag 28 december 2013 @ 16:46:
Let op met SD kaarten en Arduino: Houd de kabels kort. Je datakabels en je GND kabel ongeveer 10 cm of korter houden is het beste. SD is nogal gevoelig voor de timings.
Met langere kabels ga je namelijk allerlij vreemde foutmeldingen krijgen of hij ziet bepaalde merken ineens wel en andere niet.
[ Voor 7% gewijzigd door mad_max234 op 28-12-2013 19:49 ]
[ Voor 17% gewijzigd door alexandersamson op 28-12-2013 19:53 ]
Elektronicaprojecten van mij: http://www.gm7.nl
Elektronicaprojecten van mij: http://www.gm7.nl
[ Voor 40% gewijzigd door mad_max234 op 28-12-2013 21:15 ]
Anoniem: 187449
[ Voor 25% gewijzigd door mad_max234 op 28-12-2013 22:12 ]
Anoniem: 187449
Doe even normaal aub, want je snap geloof ik niet helemaal tegen wie ik mijn post had gericht, was niet voor jou bedoeld in ieder geval.Anoniem: 187449 schreef op zaterdag 28 december 2013 @ 22:16:
heb je al een kabeltje van 53 cm getest![]()
begrijpend lezen heb jij meer aan .. ik meld blij te zijn dat mijn SD kaartje werkt en vermeld de gevonden oplossing.
ik had al aangegeven dat ik een nieuwe SD reader had gekocht ( omdat ik vermoedde dat daar een probleem mee was)
Ga jij dan een poging doen om te zeggen dat het helemaal niet zo is... hahahahaha
[ Voor 10% gewijzigd door mad_max234 op 28-12-2013 22:30 ]
Anoniem: 187449
[ Voor 45% gewijzigd door mad_max234 op 28-12-2013 22:49 ]
Elektronicaprojecten van mij: http://www.gm7.nl
Anoniem: 187449
[ Voor 7% gewijzigd door Anoniem: 187449 op 28-12-2013 22:45 ]
Elektronicaprojecten van mij: http://www.gm7.nl
Anoniem: 187449
// SD card errorsalexandersamson schreef op zaterdag 28 december 2013 @ 22:53:
Net voor de grap eens een stuk snoer van een meter geknipt. Geen enkele kaart wordt herkend, steeds een andere foutmelding als ik zo'n sd kaartlees test library gebruik
De magische grens voor mij ligt ergens tussen de 50 en de 200 cm (25 en 100cm data kabels, + 25 en 100 voor de GND)
[ Voor 16% gewijzigd door Anoniem: 187449 op 28-12-2013 22:57 ]
Elektronicaprojecten van mij: http://www.gm7.nl
[ Voor 15% gewijzigd door mad_max234 op 28-12-2013 23:30 ]
Elektronicaprojecten van mij: http://www.gm7.nl
Anoniem: 187449
vandaar ookmad_max234 schreef op zaterdag 28 december 2013 @ 23:25:
@borroz
Dat is interessant, die timing hebben overigens niks met spi bus te maken. Wel die spi speed defines, daarmee kan je spi bus snelheid instellen waarom die moiet werken, 2Mbit, 2Mbit, 8Mbit, etc. cpu clock word dan gedeelte en daarvan word de spi clock dan afgeleid.
1
2
3
4
5
6
7
8
| if (!card.init([b]SPI_HALF_SPEED[/b], chipSelect)) { Serial.println("initialization failed. Things to check:"); Serial.println("* is a card is inserted?"); Serial.println("* Is your wiring correct?"); Serial.println("* did you change the chipSelect pin to match your shield or module?"); return; } else { Serial.println("Wiring is correct and a card is present."); |
[ Voor 14% gewijzigd door Anoniem: 187449 op 28-12-2013 23:55 ]
Anoniem: 187449
Elektronicaprojecten van mij: http://www.gm7.nl
[ Voor 89% gewijzigd door mad_max234 op 29-12-2013 00:45 ]
[ Voor 13% gewijzigd door alexandersamson op 29-12-2013 00:58 ]
Elektronicaprojecten van mij: http://www.gm7.nl
Elektronicaprojecten van mij: http://www.gm7.nl
Anoniem: 187449
kan je je tijd wellicht beter hierin stoppen.. iets dat niet te krijgen is (zover ik weet)mad_max234 schreef op zondag 29 december 2013 @ 00:49:
Ik ga nog even door..
Wat is Next? Ben altijd nieuwsgierig.
Hier werkt t inmiddels ook en ben er uit. Zijn offset is verkeerd.Anoniem: 187449 schreef op zaterdag 28 december 2013 @ 15:26:
en wat doet de code .. bij mij werkte die wel hoor
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
| void setup() { Serial.begin(9600); // activate the serial output connection } float voltage = 0; // setup some variables float sensor = 0; float voltageB=0; float celsius = 0; void loop() { // let's get measurin' sensor = analogRead(0); voltage = (sensor*5000)/1024; // convert raw sensor value to millivolts voltageB = voltage-400; // remove voltage offset celsius = voltageB/10; // convert millivolts to Celsius Serial.print("sensor: "); Serial.println(sensor,2); Serial.print("voltage: "); Serial.println(voltage,2); Serial.print("voltageB: "); Serial.println(voltageB,2); Serial.print("Temperature: "); Serial.print(celsius,2); Serial.println(" degrees C"); Serial.println("_ _ _ _ _ _ _ _ _ _ _ _ _ _ "); delay (5000); // wait 5 seconds } |
[ Voor 3% gewijzigd door kitao op 29-12-2013 08:02 . Reden: Ps ]
Volgens mij heb je voor USB sticks een stuk software of hardware nodig die de USB kan hosten. Een Arduino had dacht ik niet de resources genoeg om dat op zichzelf te doen. Ik had laatst zoiets gedaan met een bluetooth dongle en een racewagentje (http://www.gm7.nl/ps3racer/). Er komt veel bij kijken ben ik achter gekomen.Anoniem: 187449 schreef op zondag 29 december 2013 @ 06:18:
[...]
kan je je tijd wellicht beter hierin stoppen.. iets dat niet te krijgen is (zover ik weet)
een USB stick -> SPI interface + LIB voor de arduino, zodat je, net als met een SD kaartje, files kan lezen en schrijven op die stick![]()
succes !
Elektronicaprojecten van mij: http://www.gm7.nl
Anoniem: 187449
Dat het ik helemaal gemist, zonder GND zal inderdaad niet of nauwelijks werken. Vond al vreemde mod wire op je sd printje zitten. Was dat een pcb fout of zo?alexandersamson schreef op zondag 29 december 2013 @ 01:15:
Ik ben in ieder geval blij dat ik die instabiliteit er uit heb gehaald. Hij werkte dus al wel, maar was door die rare missende GND blijkbaar erg instabiel.Ben wel blij dat het is opgelost, want het is voor een opdrachtgever en niet voor mijzelf. Zelf kan ik nog rotzooien met eigen hobbyspul, maar als ik steeds op een neer moet rijden naar een opdrachtgever om bugs te lopen fixen, wordt dat veels te duur haha, Denk inderdaad dat het beter is deze nu gewoon lekker met rust te laten.
usb stick -> usb -> arduinoAnoniem: 187449 schreef op zondag 29 december 2013 @ 06:18:
[...]
kan je je tijd wellicht beter hierin stoppen.. iets dat niet te krijgen is (zover ik weet)
een USB stick -> SPI interface + LIB voor de arduino, zodat je, net als met een SD kaartje, files kan lezen en schrijven op die stick![]()
succes !
[ Voor 41% gewijzigd door mad_max234 op 29-12-2013 13:10 ]
Anoniem: 187449
als het goed is meet je ook een temp verschil tussen het voeden van je Arduino uit de USB poort of met adapter.kitao schreef op zondag 29 december 2013 @ 07:50:
[...]
Hier werkt t inmiddels ook en ben er uit.
Overigens nogmaals bedankt voor de andere links, dan kan ik nog meer vergelijken.
.
Maak een printje, gooi er bijvoorbeeld een LPC1768 op, gooi dit erop: http://mbed.org/handbook/USBHostMSD, en bedenk nog een leuk bijbehorend SPI protocol.Anoniem: 187449 schreef op zondag 29 december 2013 @ 12:24:
ja allemaal leuk zo'n USB host en ik snap de techniek erachter ook wel enigzins .. maar 'gewoon' een usb sticky prikken in een Arduino is blijkbaar nogal complex, ooit is een groepje begonnen met een lib te schrijven maar zijn gestopt en commerciele modules heb ik nooit gezien.. vandaar de 'uitdaging
Denk dat er best veel mensen het wel handig zouden vinden.. las ik al googlend
[ Voor 70% gewijzigd door mad_max234 op 29-12-2013 13:24 ]
Er zitten 3 GND aansluitingen op dat printje, maar 2 zijn er samen en 1 is bij zichzelf. De enige plek waar ze bij elkaar komen is via de DAC chip, die waarschijnlijk de ground door een van zijn logische poorten doorverbind met de andere ground. Het verschil in voltage is ook precies het verschil in voltage dat de voltregulator afsnoept van de 5V die hij binnenkrijgt: 1,68Volt. De DAC werkt ook met 5V blijkbaar. Net genoeg om een logisch 'high' te geven op de SD kaartlezer, maar instabiel als de pest, aangezien de DAC (voor het geluid) logische poorten niet geschikt zijn om ook nog de ground van een hele SD kaartlezer te sinken. Dus die kakte steeds ruim 1 volt in bij het afspelen van .WAV bestanden. Lekker lurp dus.mad_max234 schreef op zondag 29 december 2013 @ 12:37:
[...]
Dat het ik helemaal gemist, zonder GND zal inderdaad niet of nauwelijks werken. Vond al vreemde mod wire op je sd printje zitten. Was dat een pcb fout of zo?
[ Voor 11% gewijzigd door alexandersamson op 29-12-2013 13:15 ]
Elektronicaprojecten van mij: http://www.gm7.nl
Ok, goed moment om nu te proberen, want hij is enorm stabiel geworden.Anoniem: 187449 schreef op zondag 29 december 2013 @ 12:46:
als het goed is meet je ook een temp verschil tussen het voeden van je Arduino uit de USB poort of met adapter.
dat verschil kan je evt. meten en corrigeren
Ja tnx, die had ik al bekeken in je vorige post.Anoniem: 187449 schreef op zondag 29 december 2013 @ 13:43:
nee dat gaat niet met de offset .. uitleg over nauwkeurigheid hier
Anoniem: 187449
[ Voor 18% gewijzigd door Anoniem: 187449 op 30-12-2013 09:24 ]
Anoniem: 187449
[ Voor 21% gewijzigd door alexandersamson op 29-12-2013 15:56 ]
Elektronicaprojecten van mij: http://www.gm7.nl
[ Voor 3% gewijzigd door kitao op 29-12-2013 15:59 ]
Ik moet zeggen dat ik zonder dit stukje uitleg jouw link een stuk lastiger te begrijpen vond borroz, ik dacht dat het alleen over de range ging waardoor het nauwkeuriger was maar nu snap ik dat het voltage hier ook een rol speelt. Dus dat beetje extra uitleg wordt gewaardeerd.Anoniem: 187449 schreef op zondag 29 december 2013 @ 14:04:
verschil is de uitgangsspanning.. je ADC meet altijd een waarde TOV een andere waarde.. de refentie waarde
als die referentie waarde de ene keer 4.82 volt en en de andere keer 5.02 is je uitkomst onnauwkeurig (gesteld dat de omgevingstemp exact hetzelfde blijft).
In de 328 zit een interne Vref gebakken van 1V1 en die geeft 1V1 ongeacht hoe je je UNO voed.
We do what we must because we can.
[ Voor 4% gewijzigd door alexandersamson op 29-12-2013 16:03 ]
Elektronicaprojecten van mij: http://www.gm7.nl
Ja, dat begrijp ik nu en daarom had ik instabiel ook tussen ' ' gezet.alexandersamson schreef op zondag 29 december 2013 @ 16:02:
AREF zelf is niet persee instabiel, maar de manier hoe deze wordt voorzien van spanning.
[ Voor 50% gewijzigd door alexandersamson op 29-12-2013 16:32 ]
Elektronicaprojecten van mij: http://www.gm7.nl
Tja, we zijn niet allemaal universiteits geschoold ..alexandersamson schreef op zondag 29 december 2013 @ 16:30:
Ik kocht mijn eerste Arduino en begon daarmee mijn eerste uC project ooit met een Mega 2560 in mei dit jaarHad de UNO overgeslagen
[ Voor 38% gewijzigd door alexandersamson op 29-12-2013 16:38 ]
Elektronicaprojecten van mij: http://www.gm7.nl
Elektronicaprojecten van mij: http://www.gm7.nl
Anoniem: 187449
klopt.. (dat gaat waarschijnlijk ook niet volledig lukken en meestal ook niet nodig als je je code cleaned)mad_max234 schreef op zondag 29 december 2013 @ 17:27:
@borroz
Dat is alleen extra geheugen, ram, flash, eeprom toevoegen is heel simpel, nu nog execute. Extra geheugen om data op te slaan is niet het probleem dat is heel simpel, probleem ligt hem bij code verwerken.
[ Voor 15% gewijzigd door Anoniem: 187449 op 29-12-2013 17:42 ]
[ Voor 62% gewijzigd door mad_max234 op 29-12-2013 18:42 ]
Dat moet wel kunnen hoor, maar volgens mij valt het niet onder de noemer vrij simpel. Zeg maar flink ingewikkeld en heel stuk klooien om iets voor elkaar te krijgen wat twijfelachtig nut heeft: Veel te traag.mad_max234 schreef op zondag 29 december 2013 @ 17:27:
@borroz
Dat is alleen extra geheugen, ram, flash, eeprom toevoegen is heel simpel, nu nog execute. Extra geheugen om data op te slaan is niet het probleem dat is heel simpel, probleem ligt hem bij code verwerken.
@ Alex
Ja dat is wel de bedoeling, maar in hoeverre gaat dat lukken is de vraag. Heb net bitlash getest met sd, dat is no go, je heb 30KB voor de sketch en je hebt nog maar 254B over van je ram.
Code(heb het dan over machinetaal code niet je C code) vanuit SD naar flash kopiëren en dan pointer naar geheugen waar de programma begint is volgens mijn ook een no go. Dat zou namelijk vrij simpel zij, maar dan zou je verwachten dat iedereen dat zou doen, dus denk niet dat dat gaat werken.
Wellicht weet iemand anders nog mogelijkheden?
Ben ook benieuwd naar het antwoord maar heb die zeker gemist ?Demoniac schreef op vrijdag 27 december 2013 @ 20:23:
Ik heb een vage bug. myDataOut is een unsigned long, waarvan ik de bits uitlees om een aantal 74HC595 schuifregisters mee te vullen. Het volgende werkt: (sample code van Arduino.cc)
C:
1 2 3 4 5 6 7 8 9 10 11 int pinState; if (myDataOut & (1<<i) ) { pinState=true; } else { pinState=false; } digitalWrite(myDataPin, pinState);
Dit leek mij te vereenvoudigen naar:
C:
1 digitalWrite(myDataPin, (myDataOut & (1<<i)));
Echter gaan hierbij alleen de eerste 8 LED's brandenErgens in deze one-liner wordt mijn long dus omgezet naar een byte, maar waarom gebeurt dat dan niet in het if-statement?
Via bootloader is niet de bedoeling, zit je vast aan een reset.Sissors schreef op zondag 29 december 2013 @ 18:27:
[...]
Dat moet wel kunnen hoor, maar volgens mij valt het niet onder de noemer vrij simpel. Zeg maar flink ingewikkeld en heel stuk klooien om iets voor elkaar te krijgen wat twijfelachtig nut heeft: Veel te traag.
Maar je zou desnoods een complete bootloader erop kunnen zetten die van een SD kaart nieuwe code haalt. Of bijvoorbeeld een flinke functie maken, zorgen dat je weet waar die staat, en die overschrijven met een nieuwe functie vanuit je SD kaart. Dan door de oude aan te roepen moet de nieuwe uitgevoerd worden.
Ik snap hier het gebruik van digitalWrite in dit voorbeeld niet zo goed, ik gebruik zelf de functie shiftOut om bytes aan mijn shift registers door te geven.kitao schreef op zondag 29 december 2013 @ 18:38:
[...]
Ben ook benieuwd naar het antwoord maar heb die zeker gemist ?![]()
Binnenkort hoop ik ook een stuk of 4 van die HC's te ontvangen
We do what we must because we can.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val) { uint8_t i; for (i = 0; i < 8; i++) { if (bitOrder == LSBFIRST) digitalWrite(dataPin, !!(val & (1 << i))); else digitalWrite(dataPin, !!(val & (1 << (7 - i)))); digitalWrite(clockPin, HIGH); digitalWrite(clockPin, LOW); } } |
[ Voor 12% gewijzigd door alexandersamson op 29-12-2013 20:47 ]
Elektronicaprojecten van mij: http://www.gm7.nl
We do what we must because we can.
Elektronicaprojecten van mij: http://www.gm7.nl
Anoniem: 187449
[ Voor 50% gewijzigd door alexandersamson op 29-12-2013 22:58 ]
Elektronicaprojecten van mij: http://www.gm7.nl
Anoniem: 187449
[ Voor 26% gewijzigd door Anoniem: 187449 op 30-12-2013 10:25 ]
Wat zijn eigenlijk die bruine plaatjes waarop je breadboard veronderstel ik vasthangt? Sry ben nog maar een leek wat arduino betreftAnoniem: 187449 schreef op maandag 30 december 2013 @ 10:10:
Want 2 megabytes of SRAM for your Arduino?
Adding External I2C EEPROM to Arduino (24LC256)
heb toch een (geheugen) ideetje gekregen en daarom heb ik deze leuke arduino micro besteld
more info
heb je dat ook wel eens, allerlei stukjes code en sensors/devices los werken prima.. maar als je dan alles samen wil laten werken loop je toch weer tegen onverwachte problemen op![]()
[afbeelding]
mijn arduino 'lab
[ Voor 21% gewijzigd door Powerblast op 30-12-2013 10:37 ]
Anoniem: 187449
1
2
3
4
5
6
7
8
9
10
11
12
13
| void displaynumbers() { for(int a=0;a<4;a++){ digitalWrite(enablePin,HIGH); // Disable output (no ghosting from other positions) digitalWrite(ledPosition[a],HIGH); // Switch position on digitalWrite(latchPin,LOW); // Pull latch LOW to send data shiftOut(dataPin,clockPin,MSBFIRST,numberToShow[a]); // Send the data digitalWrite(latchPin,HIGH); // Pull latch HIGH to stop sending data digitalWrite(enablePin,LOW); // Enable output delay(wait); digitalWrite(ledPosition[a],LOW); // Switch position off } } |
We do what we must because we can.
[ Voor 24% gewijzigd door Promy op 30-12-2013 17:53 ]
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
| // Example 3.2 – interrupts #include "LiquidCrystal.h" // we need this library for the LCD commands // initialize the library with the numbers of the interface pins LiquidCrystal lcd(7, 8, 9, 10, 11, 12); float noisy = 0; void setup() { lcd.begin(16, 2); // need to specify how many columns and rows are in the LCD unit lcd.setCursor(0,0); lcd.println('* example 3.2 * '); lcd.setCursor(0,1); lcd.println('tronixstuff.com '); lcd.setCursor(0,1); delay(4000); lcd.clear(); randomSeed(analogRead(0)); // reseed the random number generator with some noise attachInterrupt(0, panicone, RISING); // so when interrupt zero (digital pin 2) changes state, it will trigger the // interrupt and go to function 'panicone' // attachInterrupt(1, panictwo, RISING); // so when interrupt one (digital pin 3) // changes state, it will trigger the interrupt and go to function 'panictwo' } void loop() { noisy=random(1000); lcd.setCursor(0,0); lcd.print('Random Numbers!'); lcd.setCursor(0,1); lcd.print('Number: '); lcd.print(noisy,0); delay(1000); } void panicone() { lcd.clear(); lcd.println('Interrupt one '); } void panictwo() { lcd.clear(); lcd.println('Interrupt two '); } |
[ Voor 46% gewijzigd door ResuCigam op 30-12-2013 18:25 ]
We do what we must because we can.
[ Voor 73% gewijzigd door alexandersamson op 30-12-2013 18:36 ]
Elektronicaprojecten van mij: http://www.gm7.nl
Probeer het maar eens. Enkel wat je nodig heb is een lcd, een 10K pot, 2 switches en 2x 10K weerstanden.ResuCigam schreef op maandag 30 december 2013 @ 18:16:
Wat werkt er niet aan regel 3? Dat zou gewoon moeten werken anders doet de rest het ook niet. En die andere moesten allemaal lcd.print zijn in plaats van lcd.println gok ik?
Die lesjes gaan op volgorde hè.ResuCigam schreef op maandag 30 december 2013 @ 18:16:
edit: Ah nu zie ik regel 3 ook, syntax error. Die man doet nogal wat in 1 hoofdstuk: relais, wat zijn functies, interrupts en daarna gaat hij verder met servo's?
We do what we must because we can.
Ok, duidelijk.ResuCigam schreef op maandag 30 december 2013 @ 18:37:
Nee ik had gewoon opgezocht, ben net thuis en keek even mee
Apple iPhone 16e LG OLED evo G5 Google Pixel 10 Samsung Galaxy S25 Star Wars: Outlaws Nintendo Switch 2 Apple AirPods Pro (2e generatie) Sony PlayStation 5 Pro
Tweakers is onderdeel van
DPG Media B.V.
Alle rechten voorbehouden - Auteursrecht © 1998 - 2025
•
Hosting door TrueFullstaq