To modify or not to modify that's the quest... It's no question! Always modify!!
ikheb de batterij vervangen door een andere, maar hij loopt nog steeds niet fatsoenlijk doorRobV schreef op vrijdag 13 september 2013 @ 21:26:
[...]
Ik heb hier toevallig een project draaien et een ds3231. Check even of de batterij nog goed is. Welke library gebruik je voor het uitlezen van de klok? Ik gebruik gewoon de time lib van arduino. Alles via i2c mag ik aannemen...
Hoe leg ik dit systeem aan?
Via communicatieprotocol (serieel?) kun je ze dan laten praten met elkaar. In de loop van beide arduino's kijken naar data en als de ander een request stuurt, het aantal terug sturen.
Iets in de zin van;
Bron;int containers = 0; // for incoming serial data
void setup() {
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
}
void loop() {
// send data only when you receive data:
if (Serial.available() > 0) {
// read the incoming byte:
containers = Serial.read();
// say what you got:
Serial.print("I received: ");
Serial.println(incomingByte, DEC);
}
}
http://arduino.cc/en/Serial/Available
[ Voor 24% gewijzigd door foekie01 op 19-09-2013 15:23 ]
Ik heb een tijd geleden op internet gelezen dat de atmega168 pas bij 2.8v stopt met werken.
http://arduino.cc/en/Tutorial/ArduinoToBreadboard
ps je kan ook nog de Brown-out fuse verzetten zodat hijl bij 1.8V opstart.
Deze staat standaard geloof ik op 2.7 volt. dat betekend dat als de spanning onder de 2.7 V komt hij reset.
meer info: http://www.ladyada.net/learn/avr/fuses.html
To modify or not to modify that's the quest... It's no question! Always modify!!
Dit voor een alarm project voor de arduino.
Dan zou je zeggen, dat laat je de arduino toch doen? maar ik wil het alarm ook werkend hebben zonder de Arduino.
Heb al op de ebay site gezocht, maar kon niks vinden.
schema:

[ Voor 13% gewijzigd door Rusky op 24-09-2013 14:56 ]
Dit gaat niet, maar volgens mij zit het probleem al bij de usb2serial converter:
Als ik niets aansluit en ik stuur in een terminal programma een paar bytes, dan gaat de RX LED branden. Sluit ik zowel de TX als RX aan elkaar, zodat de data terug gestuurd wordt naar het terminal programma, dan knipperen zowel de RX and RX LED, maar krijg ik niets retour.
Is er inmiddels een firmware update beschikbaar voor de usb2serial board of is er iets anders bekends loos?
Nieuwe driver en er de converter werkt plots. Ik ontvang nu data van de arduino mini(constant 2 dezelfde bytes) maar ik kan hem nog steeds niet programmeren. Ik heb het aangesloten dat de converter de reset doet. Iemand een idee?
"avrdude: stk500_getsync(): not in sync: resp=0x1c"
[ Voor 16% gewijzigd door LED-Maniak op 25-09-2013 18:34 ]
Mitsubishi Electric & Heavy Industries externe temperatuur sensor (Home Assistant compatible): V&A - ClimaControl
| Mijn joystick / simpit project | Blog | Elite Dangerous CMDR Cataclysm72
Auto-reset werkt niet. Ook niet met 100nF cap zoals vaak staat beschreven. Je moet zodra hij wil uploaden heel snel de reset knop indrukken.
Mitsubishi Electric & Heavy Industries externe temperatuur sensor (Home Assistant compatible): V&A - ClimaControl
Zelf op reset drukken werkt altijd, dat moesten we voorheen ook gewoon doen, was normale manier. Maar je kan ook gewoon auto reset gebruiken met arduino mini, je moet dan naast TX en RX ook de DTR gebruiken, die moet je aan reset pin vast maken, DTR word even laag getrokken voordat zenden begint en reset de arduino dus zodat die in bootload mode komt voor aantal seconden.
http://www.deweerd.biz/us.../nixie/CDM20824_Setup.exe
All electric components run on smoke. If you let the smoke out, they won't work anymore.
Oei, 5V. Ik ken genoeg mulitfunctionele timers op 12, 24 of 230V. Ik denk dat dat een lastige wordt op 5V.
Ik zou toch terugkomen op een Arduino (aangezien de in het algemeen sowieso geodkoper zijn als een timer. Zeker de klonen!) Wellicht dat een Nano hier een mooie oplossing is?
Even een ander evraag tussendoor: In welk pakket heb je dat schema gemaakt???
Ik loop al tijden te zoeken naar iets vergelijkbaars, en ik kom alleen SeeElectrical tegen. En dat vind ik met €300 net wat aan de dure kant voor 3 of 4 schema's per jaar. En de versie waar we het hier verder niet overgaan hebben (minder legaal) kan ik alleen in het Frans vinden
Edit
Tot pcb van 8 bij 10cm is eagle gratis, kan je van hun website downloaden. Schema mag je uiteraard zo groot maken als je wilt, dat is ook enige limit wat erop zit, alleen pcb grote, rest is gewoon beschikbaar is de gratis versie.
[ Voor 37% gewijzigd door mad_max234 op 26-09-2013 21:41 ]
Wat niet relevante pinnen en 100nF op de reset. Misschien een wat te lange reset kabel gebruikt. Voorlopig reset ik hem handmatig, gaat prima. Mocht het echt irriteren dan pak ik wel een ISP programmermad_max234 schreef op donderdag 26 september 2013 @ 11:04:
Hoe(schema) en wat heb je aangesloten op de arduino mini?
Zelf op reset drukken werkt altijd, dat moesten we voorheen ook gewoon doen, was normale manier. Maar je kan ook gewoon auto reset gebruiken met arduino mini, je moet dan naast TX en RX ook de DTR gebruiken, die moet je aan reset pin vast maken, DTR word even laag getrokken voordat zenden begint en reset de arduino dus zodat die in bootload mode komt voor aantal seconden.
Mitsubishi Electric & Heavy Industries externe temperatuur sensor (Home Assistant compatible): V&A - ClimaControl
/me heeft eindelijk ook een icoontje.. woef.. boeien..
@LED-Maniak
Je moet DTR pin van je serial convertor aansluiten op de reste pin, met 100nf naar de gnd, maar zou het ook wel zonder moeten doen. DTR = data thermal ready. DTR gaat laag voordat het zenden begint.
Als je kabel niet 100 meter lang is zou het gewoon moeten werken, en zal je eerder problemen hebben met data dan met de reset.
Welke serial convertor gebruik je?
PL2303 hebben vaak de DTR pin niet naar buiten gebracht, maar je kan die wel modden door er kabeltje aan te prutsen, is wel even wat gepriegel om er heel dun draadje aan te solderen, en kan best daarna lijm(hot glue of zo) erop doen zodat het niet afbreekt.
[ Voor 88% gewijzigd door mad_max234 op 26-09-2013 23:15 ]
Ik heb een GPS data logger shield wat constant NMEA strings naar een SD kaartje logt, om niet elke keer het SD kaartje uit het shield te hoeven verwijderen om de logfiles uit te lezen lees ik het bestandje byte voor byte uit en gooi ik het over de seriële verbinding naar de PC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| // definieer "logfile" object File logfile; // bind logfile object aan het te lezen bestand // open het bestand in read modus logfile = SD.open(filename, FILE_READ); // definieer een byte variabele voor de uitgelezen byte char teken; // lees bytes tot de read functie -1 (end of file) geeft while ((teken = logfile.read()) != -1 ) { // output de byte naar de seriële monitor Serial.print(teken); } |
Zo kan ik de SD kaart lekker in het schield laten zitten en sloop ik de SD card adapter op het shield wat minder snel.
Nu nog een app schrijven welke deze output in KML format zet voor google maps.
Sony A7III | Sony 24 - 105 G | Sigma 100 - 400
Voordeel is ook dat je meerdere prints krijgt.
All electric components run on smoke. If you let the smoke out, they won't work anymore.
Als ik op de drukknopdruk, gaat het ledje branden. Als ik weer op de schakelaar druk gaat het ledje uit.
De code hiervoor heb ik bij elkaar gescharreld van internet. De code is niet netjes, maar het werkt zo.
Nu wil ik de functie inbouwen dat ik 2 seconden de knop ingedrukt moet houden om het ledje te laten branden. En als de led uit moet, ik ook weer het knopje 2 seconden inhouden. Op dit moment reageert het ledje direct als ik de druk knop gebruik.
Als je de knop minder dan 2 seconden ingedrukt houd, moet de led niet schakelen. Is dit een beetje makkelijk te maken?
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
| int switchPin = 2; int ledPin = 13; int schakel = 9; boolean lastButton = LOW; boolean currentButton = LOW; boolean ledOn = false; int val; void setup() { pinMode(switchPin, INPUT); pinMode(ledPin, OUTPUT); pinMode(schakel, OUTPUT); } boolean debounce(boolean last) { boolean current = digitalRead(switchPin); if (last != current) { delay(5); current = digitalRead(switchPin); } return current; } void loop() { currentButton = debounce(lastButton); if (lastButton == LOW && currentButton == HIGH) { ledOn = !ledOn; } lastButton = currentButton; val = digitalRead(ledPin); digitalWrite(schakel, ledOn); digitalWrite(ledPin, ledOn); } |
Dan zoeken op de while functie op de learning pagina.
| Asus Rampage III Gene | Intel i7 930 | Corsair Dominator GT 6GB PC3-14900 | Asus GTX580 Matrix | Intel 510 SSD 120GB | Cooler Master Silent Pro M850 | Cooler Master CM-690 II Advanced | Corsair H50 | Logitech G15 Red |
Ik zou zelf iets doen als:
Sla de tijd op waarop de knop is ingedrukt, ik doe zelf niet veel met arduinos, maar volgens mij is dat de millis functie. press_time moet je ergens als unsigned_long definieren.
1
2
3
4
| if (lastButton == LOW && currentButton == HIGH) { press_time = millis(); } |
En als de knop wordt losgelatenk, kijk hoeveel tijd er is verstreken, als meer dan 2000 millisecondes, toggle de led. (Netter meestal die 2000 ergens bovenin de definieren)
1
2
3
4
5
| if (lastButton == HIGH && currentButton == LOW) { if (millis() - press_time > 2000) ledOn = !ledOn; } |
Nu kan de Arduino ook nog gewoon andere dingen doen, en je kan het ook makkelijk met interrupts laten werken.
[ Voor 7% gewijzigd door Sissors op 27-09-2013 13:41 ]
Link met uitleg:
http://arduino.cc/en/Reference/AttachInterrupt
*edit* - oeps, reactie op een verkeerd bericht

[ Voor 63% gewijzigd door Steef op 27-09-2013 14:04 ]
Sony A7III | Sony 24 - 105 G | Sigma 100 - 400
Zie http://www.kickstarter.co...ur-pocket-small-stackable voor meer info. Wat een kleintjeMicroduino Studio is een Amerikaans/Chinese ondrneming die een serie modules met de benamng "Microduino" heeft ontwikkeld. Qua software is Microduino 100% compatibel met zijn grote broer Arduino en ook de Arduino-uitbreidingsmodules (sketches) kunnen hierop met behulp van een adapterprint worden aangesloten.
Het aantrekkelijk van de Microduino-bordjes is natuurlijk het formaat: alle modules zijn slechts 1 x 1,1 inch groot (25,4 x 28 mm). Elk bordje is voorzien van 27 connector/pen-combinaties waarmee de modules aan (of beter: op) elkaar kunnen worden gekoppeld. Volgens de ontwerpers van dit systeem is Microduino erg goedkoop in het gebruik, o.a. omdat de basismodule niet is voorzien van een complete USB-aansluiting die gewoonlijk alleen nodig is voor het programmeren van de microcontroller.
Microduino Studio heeft inmiddels al bijna 20 modules ontwikkeld die klaar zijn voor serieproductie. Men heeft hiervoor een Kickstarter-project opgezet voor het verzamelen van het nodige kapitaal om de modules daadwerkelijk te gaan produceren.

Een van de filmpjes:
[ Voor 5% gewijzigd door Raven op 27-09-2013 20:13 ]
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
Voordeel daarvan is dat de pro plat op een PCB geplaatst kan worden. Ik kan zo 1-2-3 niet vinden hoe de onderkant er van deze uit ziet..?

^ bedoel je?
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
Mitsubishi Electric & Heavy Industries externe temperatuur sensor (Home Assistant compatible): V&A - ClimaControl
En wat schiet je er nou helemaal mee op? De arduino formfactor is ruk (kan er niks anders van maken), en dan willen ze een nieuwe formfactor erbij introduceren die op zijn minst even ruk is? Die U-vormige pinout is gewoon zwaar onhandig. Ja leuk het stacken van hun shieldjes (oftewel allemaal nieuwe shields), maar soms wil je ook nog wel iets zelf erbij hebben. En dan is een arduino nano/mini/andere soortgelijke boardjes gewoon heel veel handiger. Die kan je direct in een breadboard duwen en makkelijk op een experimenteerprint gebruiken. Sowieso een Arduino nano heeft slechts een oppervlakte dat een fractie groter is dan deze, dan heb je wel gewoon een compleet systeem, en ook nog eens kan je die heel veel goedkoper krijgen.
Voor mij zou de keuze iig heel erg makkelijk zijn.
Leonardo kost 20 euro. Dus betaal je voor de Linux toevoeging 50 euro ....
Ik denk meer dat je 45 euro betaald voor de Wifi toevoeging, en 5 euro voor het Linux gedeelte.Rusky schreef op dinsdag 01 oktober 2013 @ 09:33:
Dus betaal je voor de Linux toevoeging 50 euro ....
| Mijn joystick / simpit project | Blog | Elite Dangerous CMDR Cataclysm72
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
Dan zeg ik doe mij maar alleen ethernet (en de linux natuurlijk)RobV schreef op dinsdag 01 oktober 2013 @ 12:11:
[...]
Ik denk meer dat je 45 euro betaald voor de Wifi toevoeging, en 5 euro voor het Linux gedeelte.
[ Voor 4% gewijzigd door Rusky op 01-10-2013 13:16 ]
de volgende stap die ik gemaakt heb is de temperatuur via een webbrowser te tonen. dit is gelukt maar ook weer via een tutorial die ik naar eigen wens heb aangepast.
Heeft er iemand goede documentatie om alle ins en outs van het programmeren van de arduino te ondervinden? ik ben namelijk verder dan simpel een lampje te laten branden maar daarna vind ik niet zoveel informatie meer.
30 x Trina 390wp Op SE en Solis. | MHI 3,5kw
http://www.arduino.ccSpeedfightserv schreef op dinsdag 01 oktober 2013 @ 14:51:
Heeft er iemand goede documentatie om alle ins en outs van het programmeren van de arduino te ondervinden? ik ben namelijk verder dan simpel een lampje te laten branden maar daarna vind ik niet zoveel informatie meer.
Kijk waar je tegenaan loopt, bedenk hoe je het zou willen oplossen (met wat voor structuur) en google daarop...Speedfightserv schreef op dinsdag 01 oktober 2013 @ 14:51:
Heeft er iemand goede documentatie om alle ins en outs van het programmeren van de arduino te ondervinden? ik ben namelijk verder dan simpel een lampje te laten branden maar daarna vind ik niet zoveel informatie meer.
die gebruik ik ook al maar zie soms sketches van mensen dat ik denk van.. waar haal je dat vandaan..
persoonlijk vind ik zelf dat je daar niet echt van leeralmightyarjen schreef op dinsdag 01 oktober 2013 @ 15:39:
[...]
Kijk waar je tegenaan loopt, bedenk hoe je het zou willen oplossen (met wat voor structuur) en google daarop...
Zo doe ik het nu ook.
Je leer wel maar het is het toch net niet zeg maar
en misschien is het toch wel de "way to go" en dan moet ik het maar zo doen
[ Voor 5% gewijzigd door Speedfightserv op 01-10-2013 16:09 ]
30 x Trina 390wp Op SE en Solis. | MHI 3,5kw
Als ik ergens niet uit kom ga ik jullie lastig vallen
30 x Trina 390wp Op SE en Solis. | MHI 3,5kw
Daarmee wil ik overigens niet zeggen dat het fout is, het is juist een voordeel van Arduino dat je zoiets redelijk snel kan copy pasten, maar een webserver begrijpen is erg lastig.
| Mijn joystick / simpit project | Blog | Elite Dangerous CMDR Cataclysm72
Google tutorials zoeken, zijn er duizenden te vinden, over loops, timers, interrupts, pwm, etc, etc.
Vallen op opstaan, begin simpel en klein dan val je niet hard.
Vraag is natuurlijk hoe ver strekt je kennis van programmeren, arduino heeft net als meeste andere talen dezelfde functies, loops, statements, bitwise, floats, integer, etc komt in alle talen voor, als je al wat kennis hebt van programmeren dan scheelt dat hele hoop. Zo niet moet je eerst de basis begrippen gaan leren denk ik.


- 400MHz 32-bit Intel® Pentium instruction set architecture (ISA)-compatible processor o 16 KBytes on-die L1 cache
- 10/100 Ethernet connector
- Full PCI Express* mini-card slot, with PCIe 2.0 compliant features
- USB 2.0 Host connector
- 10-pin Standard JTAG header for debugging
- 14 digital input/output pins, of which 6 can be used as Pulse Width Modulation (PWM) outputs;
- A0 – A5: 6 analog inputs, via an AD7298 A-to-D converter
- I2C bus, TWI, SPI, UART, ICSP
- Default - 8 MByte Legacy SPI Flash main purpose is to store the firmware (or bootloader) and the latest sketch. Between 256KByte and 512KByte is dedicated for sketch storage.
- Default 512 KByte embedded SRAM, enabled by the firmware by default. No action required to use this feature.
- Default 256 MByte DRAM, enabled by the firmware by default.
Bron: Arduino
Edit/
Volgens Anandtech,
“Boards will be available for sale by the end of November, at a price under $60.”
[ Voor 3% gewijzigd door mad_max234 op 03-10-2013 21:42 ]

Microcontroller Atmel ATmega32u4Clock
Speed 16 MHzFlash
Memory 32 KB (ATmega32u4)
SRAM 2.5 KB (ATmega32u4)
EEPROM 1 KB (ATmega32u4)
Digital I/O Pins (5V logic) 14
PWM Channels (5V logic) 7
Analog Input Channels 6 (plus 6 multiplexed on 6 digital pins)
Processor Texas Instrument Sitara AM3359AZCZ100 (ARM Cortex-A8)
Clock Speed 1 GHz
SRAM DDR3L 512 MB RAM
Networking Ethernet 10/100
USB port 1 USB 2.0 device port, 4 USB 2.0 host ports
Video HDMI (1920x1080)
Audio HDMI, stereo analog audio input and output
Digital I/O Pins (3.3V logic) 12
PWM Channels (3.3V logic) 4
MicroSD card
Support LCD expansion connector
Deze vindt ik dan wat intresanter. zelfs HDMI output. en 1ghz processor ... komt begin 2014, alleen prijs niet bekend
In theorie zou je daar dus een oude versie van windows op kunnen draaienmad_max234 schreef op donderdag 03 oktober 2013 @ 21:15:
Er is weer nieuwe telg in arduino stal, best wel verrassende eerlijk gezegd. Een intel arduino, met een van de nieuwe microcontroller van intel, de Quark X1000.
[afbeelding]
[afbeelding]Datasheet Galileo
- 400MHz 32-bit Intel® Pentium instruction set architecture (ISA)-compatible processor o 16 KBytes on-die L1 cache
- 10/100 Ethernet connector
- Full PCI Express* mini-card slot, with PCIe 2.0 compliant features
- USB 2.0 Host connector
- 10-pin Standard JTAG header for debugging
- 14 digital input/output pins, of which 6 can be used as Pulse Width Modulation (PWM) outputs;
- A0 – A5: 6 analog inputs, via an AD7298 A-to-D converter
- I2C bus, TWI, SPI, UART, ICSP
- Default - 8 MByte Legacy SPI Flash main purpose is to store the firmware (or bootloader) and the latest sketch. Between 256KByte and 512KByte is dedicated for sketch storage.
- Default 512 KByte embedded SRAM, enabled by the firmware by default. No action required to use this feature.
- Default 256 MByte DRAM, enabled by the firmware by default.
Bron: Arduino
Edit/
Volgens Anandtech,
“Boards will be available for sale by the end of November, at a price under $60.”
Dat is inderdaad interessant, maar zal wel niet goedkoop worden.
@almightyarjen
Ja win2000 of xp zal er waarschijnlijk prima op gaan draaien, zie geen echte opstakels, mijn oud Pentium @ 266Mhz trok het ook, had eerste instantie 128MB en dat was wat krap, met 256MB liep het allemaal soepel. Ik verwacht dus dat het XP best aardig zal draaien, goed werkbaar.
Via pcie slot kan je eventueel videouitgang/hdmi toevoegen, maar dan ga je zijn doel beetje voorbij lijkt, maar aan de andere kant word grenzen van arduino ook steeds verder opgerekt en bezit nu ook over videoout. Video out/vga eraan modden lijkt me dan ook eerder een uitdaging voor de gebruikers dan gemiste kans, dat is wat wij doen, modden en hacken, zou bijna feature gaan noemen.
Edit/
Je kan natuurlijk tegenwoordig ook altijd usb(displaylink, UGA) gebruiken om monitor aan te hangen, was nog niet echt wakker.
Of je gaat pcie 1x videokaart modden aan pcie mini slot.
[ Voor 17% gewijzigd door mad_max234 op 04-10-2013 10:12 ]
Waarom niet? Beagleboard Black kost 45 dollar. doe daar een arduino bij van 15 dollar, totaal 60 dollar ...mad_max234 schreef op vrijdag 04 oktober 2013 @ 09:59:
@Rusky
Dat is inderdaad interessant, maar zal wel niet goedkoop worden.
Jij zegt 15 dollar. maar originele arduino kost 30 dollar ongeveer.
Als je kijkt wat ze rekenen voor arduino due 55 dollar, met Atmel SAM uC erop die goedkoper kost de helft dan TI soc.
Ken wel die semi-industriële 36Volt dingen maar denk dat die dingen een beetje te gek zijn. En 5Volt kan ik makkelijk aansturen via de Arduino.
if (!coffee) {
Work = false; }
[ Voor 5% gewijzigd door AlexanderB op 05-10-2013 17:18 ]
Wil je de pagina in de flash memory van arduino zetten, moeten alle regels worden omgezet naar :
prog_char var_0[] PROGMEM = " regel 1 van de html code”;
prog_char var_1[] PROGMEM = " regel 2 van de html code”;
etc.
Bovendien moeten alle quotes worden voorafgegaan van een slash teken. Dus:
“ veranderd naar \”
‘ veranderd naar \’
Vervolgens moet er een string table worden gemaakt met een pointer naar alle PROGMEM-variabelen. Bij een uitgebreide web pagina is dat is op zich al een heleboel werk maar als je naderhand de HTML pagina wilt veranderen kan je weer opnieuw beginnen.
Om dit te vereenvoudigen heb ik een (windows) programma gemaakt die dit automatisch doet. Je maakt een webpagina aan in een HTML editor en open dit vervolgens met de HTML converter. Alle regels worden voorzien met de tekst: prog_char wp_0[] PROGMEM = " en afgesloten met “;
Alle quotes worden voorzien van een slash teken. Bovendien word er aan het einde een string table toegevoegd met de variabele q_wp_ met daarin het aantal regels. Met de knop copy to clipboard worden alle regels in het clipboard gezet en kan worden geplakt in de arduino code.
Het inlezen van de PROGMEM variabelen kan je inlezen met:
char buffer[200];
for (int i = 0; i < q_wp_; i++)
{
strcpy_P(buffer, (char*)pgm_read_word(&(wp_[i])));
client.println( buffer );
}
Voor de geïnteresseerden is het programma te downloaden: convert_web.
[ Voor 1% gewijzigd door Piepersnijder op 02-05-2014 17:08 . Reden: IP aangepast ]
Kom jij die onterechte foutmeldingen ook tegen of heb je daar wat op gevonden?
Ik bedoel deze foutmeldingen :
1
2
3
4
5
6
| In file included from CuteCOL_148.cpp:14: /sim.c: In function 'void simulatie(int, int, int, int, int, int, int, int)': /sim.c:116: warning: only initialized variables can be placed into program memory area /sim.c:149: warning: only initialized variables can be placed into program memory area CuteCOL_148.cpp: At global scope: CuteCOL_148.cpp:54: warning: only initialized variables can be placed into program memory area |
maar alles wordt gewoon netjes geïnitialiseerd :
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
| static PROGMEM prog_int16_t simfc_weekend[24*FCSIMMAX] = { 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 1, 1, 1, 1, /* 00:00 - 01:00 */ 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 1, 1, 1, 1, /* 01:00 - 02:00 */ 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 1, 1, 1, 1, /* 02:00 - 03:00 */ 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 1, 1, 1, 1, /* 03:00 - 04:00 */ 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 1, 1, 1, 1, /* 04:00 - 05:00 */ 25, 25, 25, 25, 25, 25, 25, 25, 4, 4, 3, 3, 3, 3, /* 05:00 - 06:00 */ 50, 50, 50, 50, 50, 50, 50, 50, 5, 5, 4, 4, 4, 4, /* 06:00 - 07:00 */ 100, 100, 200, 100, 100, 400, 200, 200, 30, 30, 30, 30, 30, 30, /* 07:00 - 08:00 */ 100, 100, 200, 100, 300, 400, 200, 200, 30, 30, 30, 30, 30, 30, /* 08:00 - 09:00 */ 100, 100, 200, 100, 200, 400, 200, 200, 30, 30, 30, 30, 30, 30, /* 09:00 - 10:00 */ 100, 100, 200, 100, 200, 400, 200, 200, 30, 30, 30, 30, 30, 30, /* 10:00 - 11:00 */ 100, 100, 200, 100, 200, 400, 200, 200, 30, 30, 30, 30, 30, 30, /* 11:00 - 12:00 */ 100, 100, 200, 100, 100, 400, 200, 200, 30, 30, 30, 30, 30, 30, /* 12:00 - 13:00 */ 100, 100, 200, 100, 100, 400, 200, 200, 30, 30, 30, 30, 30, 30, /* 13:00 - 14:00 */ 100, 100, 200, 100, 100, 400, 200, 200, 30, 30, 30, 30, 30, 30, /* 14:00 - 15:00 */ 100, 100, 200, 100, 200, 400, 200, 200, 30, 30, 30, 30, 30, 30, /* 15:00 - 16:00 */ 100, 100, 200, 100, 200, 400, 200, 200, 30, 30, 30, 30, 30, 30, /* 16:00 - 17:00 */ 100, 100, 200, 100, 200, 400, 200, 200, 30, 30, 30, 30, 30, 30, /* 17:00 - 18:00 */ 100, 100, 200, 100, 200, 400, 200, 200, 30, 30, 30, 30, 30, 30, /* 18:00 - 19:00 */ 100, 100, 200, 100, 200, 400, 200, 200, 30, 30, 30, 30, 30, 30, /* 19:00 - 20:00 */ 100, 100, 200, 100, 200, 400, 200, 200, 30, 30, 30, 30, 30, 30, /* 20:00 - 21:00 */ 100, 100, 200, 100, 200, 400, 200, 200, 30, 30, 30, 30, 30, 30, /* 21:00 - 22:00 */ 100, 100, 200, 100, 200, 400, 200, 200, 30, 30, 30, 30, 30, 30, /* 22:00 - 23:00 */ 100, 100, 200, 100, 200, 400, 200, 200, 30, 30, 30, 30, 30, 30}; /* 23:00 - 24:00 */ |
offtopic : blijft jammer dat die standaard bordjes zó verschrikkelijk weinig geheugen hebben.. 2KB is echt niks.
[ Voor 117% gewijzigd door WVL_KsZeN op 06-10-2013 11:08 ]
/me heeft eindelijk ook een icoontje.. woef.. boeien..
Wellicht dat je het aantal variabelen eerst moet berekenen en deze waarde dan plaatsen tussen de haken.
dus bv:
word tmp = 24*FCSIMMAX;
static PROGMEM prog_int16_t simfc_weekend[tmp] = {
De arduino UNO is erg krap in zijn geheugen.
Ik heb nu de arduino Mega. die zit een stuk royaler in zijn geheugen.
[ Voor 17% gewijzigd door Piepersnijder op 06-10-2013 11:26 ]
[ Voor 27% gewijzigd door WVL_KsZeN op 06-10-2013 11:28 ]
/me heeft eindelijk ook een icoontje.. woef.. boeien..
error: array bound is not an integer constant
wanneer ik de variabele FCSIMMAX verander in een getal is het weg.
ik gebruik versie 1.0.5
[ Voor 6% gewijzigd door Piepersnijder op 06-10-2013 11:44 ]
#define FCSIMMAX 14
in de code staat dus niet 24*FCSIMMAX, maar 24*14.
Als jij geen foutmeldingen krijgt tijdens het compileren moet ik misschien ook maar eens updaten :-)
[ Voor 49% gewijzigd door WVL_KsZeN op 06-10-2013 11:48 ]
/me heeft eindelijk ook een icoontje.. woef.. boeien..
Ik heb nu het volgende (een beetje ingekort):
#define FCSIMMAX 14
static PROGMEM prog_int16_t simfc_weekend[3*FCSIMMAX] = {
5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 1, 1, 1, 1, /* 00:00 - 01:00 */
5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 1, 1, 1, 1, /* 01:00 - 02:00 */
100, 100, 200, 100, 200, 400, 200, 200, 30, 30, 30, 30, 30, 30};
Ik krijg geen foutmelding.
Nu met Arduino 1.0.5 nog steeds hetzelfde
Overigens :
Arduino 1.0.1 : binaire sketchgrootte : 26.812 bytes
Arduino 1.0.5 : binaire sketchgrootte : 26.968 bytes
het resulterende programma is dus niet helemaal hetzelfde..
Als ik in Arduino 1.0.5 deze sketch compileer :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| void setup() { // put your setup code here, to run once: } void loop() { // put your main code here, to run repeatedly: #define FCSIMMAX 14 static PROGMEM prog_int16_t simfc_weekend[3*FCSIMMAX] = { 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 1, 1, 1, 1, /* 00:00 - 01:00 */ 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 1, 1, 1, 1, /* 01:00 - 02:00 */ 100, 100, 200, 100, 200, 400, 200, 200, 30, 30, 30, 30, 30, 30}; } |
Dan staat bovenin de compiler output de volgende foutmelding
1
2
3
| BareMinimum.ino: In function 'void loop()': BareMinimum.ino:9: warning: only initialized variables can be placed into program memory area BareMinimum.ino:9: warning: unused variable 'simfc_weekend' |
[ Voor 162% gewijzigd door WVL_KsZeN op 06-10-2013 12:14 ]
/me heeft eindelijk ook een icoontje.. woef.. boeien..
Btw, het definieren van PROGMEM variabelen kan je niet in de loop zetten.
Ik heb een vinkje in de voorkeuren aangezet en zie de melding nu ook.
Het komt doordat je de PROGMEM wil schrijven in je programmaloop. Deze variabelen staan in de flash memory. Je kunt deze variabelen alleen lezen..
[ Voor 35% gewijzigd door Piepersnijder op 06-10-2013 12:43 ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| #define FCSIMMAX 14 static PROGMEM prog_int16_t simfc_weekend[3*FCSIMMAX] = { 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 1, 1, 1, 1, /* 00:00 - 01:00 */ 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 1, 1, 1, 1, /* 01:00 - 02:00 */ 100, 100, 200, 100, 200, 400, 200, 200, 30, 30, 30, 30, 30, 30}; void setup() { // put your setup code here, to run once: } void loop() { // put your main code here, to run repeatedly: } |
1
| BareMinimum.ino:2: warning: only initialized variables can be placed into program memory area |
Ik heb inderdaad altijd de uitgebreide output tijdens compileren aangevinkt, wil natuurlijk wel alle warnings zien
Als je jouw programma nu compileert met uitgebreide output tijdens compileren, dan krijg je geen warnings?
Het maakt ook niet uit of ik PROGMEM nu eerst declareer of later, static maakt ook niet uit :
1
2
3
4
5
6
| prog_int16_t PROGMEM test1 = 1; PROGMEM prog_int16_t test2 = 1; void setup() {} void loop() {} |
1
2
| BareMinimum.ino:2: warning: only initialized variables can be placed into program memory area BareMinimum.ino:3: warning: only initialized variables can be placed into program memory area |
[ Voor 64% gewijzigd door WVL_KsZeN op 06-10-2013 13:21 ]
/me heeft eindelijk ook een icoontje.. woef.. boeien..
Ik weet alleen niet of het "probleem" oplost of dat het "probleem" niet zichtbaar maakt. (voor zover het een probleem is)
#include <avr/pgmspace.h>
#undef PROGMEM
#define PROGMEM __attribute__((section(".progmem.data")))
#define FCSIMMAX 14
static PROGMEM prog_int16_t simfc_weekend[3*FCSIMMAX] = {
5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 1, 1, 1, 1, /* 00:00 - 01:00 */
5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 1, 1, 1, 1, /* 01:00 - 02:00 */
100, 100, 200, 100, 200, 400, 200, 200, 30, 30, 30, 30, 30, 30};
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
/me heeft eindelijk ook een icoontje.. woef.. boeien..
if (!coffee) {
Work = false; }
Er bestaat wel een kans dat het fout gaat maar dat kan je in je programma afvangen.
| Mijn joystick / simpit project | Blog | Elite Dangerous CMDR Cataclysm72
Anoniem: 196149
De arduino en alle sensoren zitten dan binnen in de afgesloten kegel. Ik ben dus op zoek naar een bewegingsssensor. Dan kom je al snel uit bij sensoren met licht of infrarood, die vallen helaas af omdat je niet naar buiten kunt kijken vanuit de kegel. Ook kan ik een gyroscoop of iets dergelijks gebruiken maar dat wordt meteen erg ingewikkeld of duur (van wat ik tot nu toe kan vinden).
Bestaat er niet zoiets als een sensor die waarneemt wanneer hij bewogen wordt en wanneer hij stil ligt? ik heb al wel iets van die piezzo tril sensoren gevonden maar volgens mij is dat meer om trillingen van een oppervlak te meten.
Zelf denk ik dat een accelerometer het makkelijkste is te gebruiken. Dan meet je de beweging door het oppakken. Je hebt uiteraard wel wat vertraging voordat hij weet dat hij is neergelegd, want je weet niet of diegene hem gewoon even stilhoudt, of dat hij weer op de grond ligt.
Als het altijd is of vastgehouden in staande positie, of op de grond liggende, dan kan je ook een luchtdruksensor gebruiken om de hoogte te meten. Maar ik denk dat een accelerometer over het algemeen het makkelijkste is.
Je kan ook nog een MPU6050 kopen, dan heb je een accelerometer en gyroscoop in één, en breakout boards daarvoor gaan blijkbaar ook voor 3x niks tegenwoordig, al denk ik dat alleen accelerometer ook prima het moet doen.
[ Voor 3% gewijzigd door Sissors op 09-10-2013 11:54 ]
Anoniem: 196149
Ik wil voor dit project eigenlijk geen spullen uit bijv. china laten komen. Daar heb ik de tijd niet voor en als ik iets bij een nederlandse webshop koop kan ik ook beter gebruik maken van garantie mocht er iets niet werken.
Ook vind ik een gyroscoop zo ingewikkeld voor dit project, het zijn natuurlijk prachtig mooie dingen wat je er allemaal mee kunt maar ik hoef echt alleen te weten of iets beweegt of dat het stil ligt.
Waar zou ik een accelerometer kunnen halen? (betaalbaar)
[ Voor 6% gewijzigd door Anoniem: 196149 op 09-10-2013 16:24 ]
Voor de grotere hardware zoals soldeerstations of labvoedingen kun je gezien de verzendkosten en garantie inderdaad beter gewoon lokaal bestellen. Maar laat ik zeggen: Als ik al mijn spulletjes hier gewoon in Europa had besteld had mij dat inmiddels een godsvermogen gekost.
| Mijn joystick / simpit project | Blog | Elite Dangerous CMDR Cataclysm72
Maar goed, accelerometer heb je nodig. Normaal zou ik zeggen ebay, maar dat is dus china vaak. Buiten China wordt het wel duurder. Zelf heb ik weleens wat van http://www.drotek.fr/shop/en/9-accelerometers gekocht. Geen klachten daarover, en het komt uit Europa dus zou niet al te lang moeten duren. Toen was wat ik nodig had verder niet in NL te krijgen.
Een iprototype verkoopt bijvoorbeeld een MPU6050 voor het 10-20 voudige van hetzelfde PCB'tje op ebay. Marktplaats zoeken op accelerometer levert nog wel wat op voor niet extreme prijs.
Eigenlijk echt zonde dat die nano's/uno's zo weinig SRAM hebben, ik kom gewoon altijd te kort. Hoop maar dat er ooit eens iets komt met wat meer ram, bvb 32kb flash en 32kb SRAM, ipv 32/2.
/me heeft eindelijk ook een icoontje.. woef.. boeien..
Ik heb nu noodgedwonen nogal wat beperkingen moeten instellen : positie is bepaald tot op 0.1m, snelheid van voertuig is alleen of afhankelijk van afstand tot vorige voertuig (en die had ik al opgeslagen! dus ik kan het uitrekenen met een functie) en de lengtes zijn allemaal gelijk. Het werkt wel, maar het zou makkelijker zijn als ik wat meer plek had voor dingen..
Eigenlijk heb ik het liever andersom : meer ram dan flash. Snap niet zo goed waarom een programma zo groot zou moeten zijn, alles draait om je data
[ Voor 12% gewijzigd door WVL_KsZeN op 13-10-2013 23:00 ]
/me heeft eindelijk ook een icoontje.. woef.. boeien..
Ik kwam dit topic tegen en ik heb een vraag.
Ik ben op het moment bezig met een arduino uno. En meerdere sensoren.
De vraag luid:
hoe kun je makkelijk van de arduino waarden (denk aan temeratuur en druk) naar een C# applicatie sturen waarnaar je daar de hoogte berekent.
De formule voor de hoogt heb ik op het moment al gevonden. Alleen kan op het moment de communicatie tussen mijn C# en mijn arduino niet goed krijgen.
voorderest GEWELDIG topic dit zit nu al uur te lezen!
bijvoorbaat dank
Je bedoelt dat je loggegevens in het RAM houdt? Daar hebben ze SD-kaartjes voor uitgevonden he. Alleen de variables die je nodig hebt om mee te rekenen hoeven in het RAM te staan.WVL_KsZeN schreef op zondag 13 oktober 2013 @ 22:57:
Voor een simulatie zou ik eigenlijk van zo'n 128 voertuigen wat gegevens willen bijhouden : positie, snelheid, lengte van voertuig, etc.. dat loopt nogal snel op wbt geheugengebruik.
Ik heb nu noodgedwonen nogal wat beperkingen moeten instellen : positie is bepaald tot op 0.1m, snelheid van voertuig is alleen of afhankelijk van afstand tot vorige voertuig (en die had ik al opgeslagen! dus ik kan het uitrekenen met een functie) en de lengtes zijn allemaal gelijk. Het werkt wel, maar het zou makkelijker zijn als ik wat meer plek had voor dingen..
Eigenlijk heb ik het liever andersom : meer ram dan flash. Snap niet zo goed waarom een programma zo groot zou moeten zijn, alles draait om je data
Wat wil er niet lukken dan?welvaartsbuik schreef op dinsdag 15 oktober 2013 @ 11:50:
Hallo allemaal,
Ik kwam dit topic tegen en ik heb een vraag.
Ik ben op het moment bezig met een arduino uno. En meerdere sensoren.
De vraag luid:
hoe kun je makkelijk van de arduino waarden (denk aan temeratuur en druk) naar een C# applicatie sturen waarnaar je daar de hoogte berekent.
De formule voor de hoogt heb ik op het moment al gevonden. Alleen kan op het moment de communicatie tussen mijn C# en mijn arduino niet goed krijgen.
voorderest GEWELDIG topic dit zit nu al uur te lezen!
bijvoorbaat dank
Je zult een simpel protocol moeten verzinnen om vanaf je Arduino data via de seriele poort te versturen. Je C# applicatie zal die poort moeten uitlezen. Waar loop je op vast?
Wat mcdavid zei: In je RAM moet je hebben waarmee je rekent, opslag doe je op flash chipje/SD kaart. Uiteraard is het makkelijker om alles in je RAM te hebben, nog makkelijker is alles in registers hebben en nog geen eens naar je RAM. Maar dat is niet echt realistisch. Je computer heeft bijvoorbeeld ook een stuk grotere HDD dan dat hij geheugen/cache heeft. En die moet nog code naar zijn RAM laden, een microcontroller doet dat niet.WVL_KsZeN schreef op zondag 13 oktober 2013 @ 22:57:
Voor een simulatie zou ik eigenlijk van zo'n 128 voertuigen wat gegevens willen bijhouden : positie, snelheid, lengte van voertuig, etc.. dat loopt nogal snel op wbt geheugengebruik.
Ik heb nu noodgedwonen nogal wat beperkingen moeten instellen : positie is bepaald tot op 0.1m, snelheid van voertuig is alleen of afhankelijk van afstand tot vorige voertuig (en die had ik al opgeslagen! dus ik kan het uitrekenen met een functie) en de lengtes zijn allemaal gelijk. Het werkt wel, maar het zou makkelijker zijn als ik wat meer plek had voor dingen..
Eigenlijk heb ik het liever andersom : meer ram dan flash. Snap niet zo goed waarom een programma zo groot zou moeten zijn, alles draait om je data
@Bart, zijn meerdere opties. Maar bij die eisen kan je al gewoon bijvoorbeeld sturen:
[Temp] [Druk]\n
Dan kan je ontvangende kant gewoon elke regel inlezen en weet hij dat er twee getallen uitgehaald moeten worden. Krijgt hij niet twee getallen, gooi de regel weg (kan bijvoorbeeld bij inschakelen gebeuren).
(Edit: Kan je \n zo versturen in Arduino? Ik ben C(++) printf gewend)
Ik loop op het moment vast dat ik de ontvangen data in C# niet kan idetificeren. Dit stukje komt omdat ik op de arduino geen unique identifier kan meegeven.mcDavid schreef op dinsdag 15 oktober 2013 @ 12:10:
Wat wil er niet lukken dan?
Je zult een simpel protocol moeten verzinnen om vanaf je Arduino data via de seriele poort te versturen. Je C# applicatie zal die poort moeten uitlezen. Waar loop je op vast?
Meerdere sensor readings.(temepartuur, luchdruk, x,y,z etc.)
T123P123X123Y123Z123. In je programma zul je die string weer uit elkaar moeten trekken.
1
2
3
4
| Serial.print("T"); Serial.print(temperature); Serial.print("P"); Serial.println(pressure); |
http://arduino.cc/en/Serial/Print
[ Voor 11% gewijzigd door mcDavid op 15-10-2013 13:48 ]
Heb via stackoverflow weer wat geleerd:) code is nu aan arduino kant operationeel. zo wordt het nu ongeveer:mcDavid schreef op dinsdag 15 oktober 2013 @ 13:47:
regel #1: Alles is mogelijk.
1
2
3
4
5
6
| float temperature; bmp.getTemperature(&temperature); dtostrf(temperature,1,2,temp); tempAsString = String(temp); tempaturereading = 'T' + tempAsString; Serial.print(tempaturereading); |
[ Voor 15% gewijzigd door welvaartsbuik op 15-10-2013 16:31 ]
25.5 kan je dan bijv als 255 rekenen, dan heb je helemaal geen float nodig, eigenlijk kan je altijd wel float omzeilen en zo heel veel snelheid en geheugen besparen(ram en flash).
Leer jezelf dus aan om float gewoon niet te gebruiken, in hele specifieke gevallen ontkom je er niet aan, maar 99 van 100 keer kan je prima alles gewoon in integer berekenen door simpel alles in hogere waarde te bereken zodat alles achter de komma gewoon voor de komma komt te staan, zo simpel kan het zijn.
Heb even snel een voorbeeldje in elkaar gezet.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| void setup() { Serial.begin(9600); } void loop() { int temperatuur = 255; // 25.5 maal 10 int heel = temperatuur / 10; // geeft je 25, 0.5 zal vervallen. int tiende = temperatuur - (heel * 10); // heeft je 5, 255 - (25 *10) = 5 Serial.print(heel); // 25 Serial.print("."); // - Serial.println(tiende); //5 delay(5000); } |
Deze code is veel snel dan float piont berekening en kost veel minder resource, integer berekeningen worden namelijk hardwarematig uitgevoerd door alu, en AVR heeft geen fpu, dus moet alle float via alu(integer) gaan bereken en kost veel resource.
1
2
3
4
5
| float temperature; bmp.getTemperature(&temperature); dtostrf(temperature,1,2,temp); Serial.print("t"); Serial.print(String(temp)); |
All electric components run on smoke. If you let the smoke out, they won't work anymore.
ik ben eigenlijk op zoek naar een sort van management platform voor arduino's.
ik heb meerdere arduino's, meerdere ethernet shields, en eigenlijk wil ik een soort van code kunnen laden op die arduino's waardoor ze praten tegen een centrale server. vervolgens op die centrale server coden, dus bijvoorbeeld dingen als lees op arduino1 analoog poort 1. als analoog poort 1, dan doe op arduino2 etc. etc.
iemand enig idee?
60 TB can not be enough
Even googlen levert al snel wat mogelijkheden, bijv: http://www.freetronics.co...ia-a-network#.Ul7OGENcIcw
Als ik timer2 initialiseer met
1
| MsTimer2::set(250, TimerISR); // 250ms period |
vervalt de PWM functie van pin 11. Maar hoe "unset" ik timer2 weer, zodat ik opnieuw de PWM functie kan gebruiken?
Edit: na wat googlen kwam ik dit tegen, wat de timer disabled. Naar mijn mening hadden ze dit ook wel mogen opnemen in de library
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| void ResetTimer2() { // set timer 2 prescale factor to 64 #if defined(__AVR_ATmega8__) TCCR2 |= (1<<CS22); #else TCCR2B |= (1<<CS22); #endif // configure timer 2 for phase correct pwm (8-bit) #if defined(__AVR_ATmega8__) TCCR2 |= (1<<WGM20); #else TCCR2A |= (1<<WGM20); #endif } |
[ Voor 31% gewijzigd door almightyarjen op 17-10-2013 15:17 ]
| Mijn joystick / simpit project | Blog | Elite Dangerous CMDR Cataclysm72