Hur använda Arduino UNO för att sampla och lägga i databas?

Planering och tankar kring eventuella framtida projekt.
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Hur använda Arduino UNO för att sampla och lägga i datab

Inlägg av Spisblinkaren »

Jag tackar för tipset men jag förstår inte vad det är för nåt :D

MVH/Roger
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Hur använda Arduino UNO för att sampla och lägga i datab

Inlägg av Spisblinkaren »

Idag har jag försökt få i ordning UNO'n med hjälp av mina nya processorer.

Den första fungerade inte. Gav "Out of sync" vad nu det betyder så jag gick tillbaka till Kjell & Co och klagade. Fick en ny men har nu verifierat precis samma sak. Detta trots att jag testade alla typ 20 COM-portar.

Den enda processor som "fungerar" är ordinarie. Till den kan jag i alla fall ladda upp program vilket jag inte kunde med de andra två.

Så jag har försökt klura ut problemet på annat sätt.

Satte t.ex pollingloopens tid till 300ms istället för 50ms. Plötsligt kunde man tydligt se uppdateringarna. Såg då att det fladdrade mest i minst signifikanta siffra (justerade klockpulsen lite också). Men detta är omöjligt då ett test görs som innebär att LED-uppdatering endast skall göras om det typ diffar i de TVÅ lägsta siffrorna.

Så jag ökade successivt spannet och vid en skillnad om 50 av 1023 (dvs typ hela 250mV då AREF är 5V) så försvann fladdret nästan helt (till kråksången hör att jag monterade tillfälligt en 1mF-konding över 5V-en).

Nu kör jag med 100 i spann samtidigt som jag ändrat referensspänning då jag läste nånstans att 5V:en inte är den bästa så nu är den satt till 3,3V istället.

Men tror ni det hjälpte?

Det funkar alltså med 100 men när jag sätter tillbaks på dom 2 jag vill ha blir det pannkaka (och 10%-steg i kraftmätningen vill man ju knappast ha).

Men med 100 kan jag emellertid lekfullt gå vidare till SD-lagring.

Det får duga så länge.

Skum värld man lever i :)

MVH/Roger
PS
Om man får spekulera lite tror jag det har blivit nåt fel på den matematiska biten hos processorn. Det är ologiskt att värden skilt från mina gränsvärden släpps fram till displayet. Det föreligger nämligen ett strikt villkor för när det ska kunna ske.

Nästa steg i felsökandet blir således att försöka få utvecklingsmiljön att faktiskt visa vilka värden som genereras. Det finns en inbyggd monitor men jag begriper inte hur den fungerar.
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Hur använda Arduino UNO för att sampla och lägga i datab

Inlägg av Spisblinkaren »

Då var det bekräftat.

Min UNO's nya CPU saknar bootloader.

Kjell & Co säljer alltså reservdels-CPU till UNO utan bootloader (jag ämnar försiktigt tala om det för dom vid tillfälle).

Trodde först jag kunde fixa det mha datorn (och det kan man naturligtvis) men sen insåg jag att en bootloader är ett litet program som just gör det möjligt att programmera UNO med det program du skriver.

Detta låter kanske konstigt men för att kunna skicka program till UNO behövs ett litet program (bootloadern) för att ta hand om programmet du önskar skicka.

Så den amatörmässiga villfarelsen att jag kan skicka själva bootloadern till UNO utan att den har en bootloader blir direkt korkad :D

Läser man sedan manualen till UNO så talar den om att man i princip måste köpa en ISP (In-System-Programmer) enhet för att kunna programmera bootloader.

Manualen nämner iof ett annat kul alternativ där man relativt enkelt kan bygga en "Parallell Programmer" mha en parallellportskontakt och dito parallell-serial adapter.

Kruxet är bara att då måste jag även köpa en USB-Serial adapter och detta för att min relativt moderna Laptop saknar seriella portar.

Så för att slippa allt detta meck kommer jag således köpa ny UNO (R3).

Dessutom blir det nog billigare (runt 250 spänn).

MVH/Roger
PS
Man kan alltså kolla om bootloader finns genom att trycka på Reset. Och om den inbyggda LED (kopplad till pin 13) inte blinkar så finns ingen bootloader (i mitt fall lyser den konstant oavsett vad jag gör).
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

Re: Hur använda Arduino UNO för att sampla och lägga i datab

Inlägg av Magnus_K »

Jag talar lite i nattmössan nu rogerk8 för jag har aldrig gjort detta själv MEN,
om du kikar på denna länk till exempel, så ska du kunna använda din redan ägda Uno till att programmera bootloaders på dina tomma µC:s.

Det finns nog massor att läsa om detta, även på youtube.

Lycka till!

EDIT: Detta är en bättre länk.
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Hur använda Arduino UNO för att sampla och lägga i datab

Inlägg av Spisblinkaren »

Tack Magnus!

Mycket intressant!

Dels kan jag alltså om jag köper en ny UNO bränna hur många bootloaders jag vill med dom, dels kan jag likt längst ner till höger bränna bootloader mha ett kopplingsdäck (och kristall dock, för varianten längst ner till vänster fattar jag inte. Vadå konfigurera för intern oscillator, hur gör man det liksom på den externa CPU man ska bränna?)

Så det är förvirrande att läsa instruktionerna.

Dom sägs vara enkla men jag fattar inte ens vilket kort som ska ha den extra 10uF-kondingen över Reset-tampen.

Det är för många frågetecken.

Det och allt meck gör det fortfarande värt att köpa en ny.

MVH/Roger
PS
Vad står förresten AVR för? Jag trodde det var "Automatic Voltage Regulation" :D

Det finns alltid undantag. Såhär står det med fet stil i din trevliga "EDIT-länk": "Note that these techniques only work with the Arduino Duemilanove w/ an ATmega328, not the Arduino Uno (or older Arduino boards w/ an ATmega168)".
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

Re: Hur använda Arduino UNO för att sampla och lägga i datab

Inlägg av Magnus_K »

Ja det blir lite mer meck.
Bara för att irritera dig lägger jag med youtube-länk där en kille visar precis hur det går till.

Han nämner också "out of sync" varningen du fick och att detta ofta beror på att det saknas bootloader.
Slutligen har han gjort ett litet kort så han snabbt kan utföra laddningen på nya µc's utan att koppla allt för många tåtar.

Men ja, det är lättare att köpa en ny Uno :wink:

Ps. Som svar till din edit: Dom menar nog att det inte går om du har en äldre Uno (med Atmega168 kontroller), men jag är rätt säker på att du har en R3 (som jag) och då antagligen har en Atmega328P-något. Guiden kanske skrevs för länge sedan?
Ursäkta mitt svammel Roger, förhoppningsvis fyller någon mer begåvad person in och rättar mig. Ds

EDIT: The creators of the AVR give no definitive answer as to what the term "AVR" stands for. However, it is commonly accepted that AVR stands for Alf (Egil Bogen) and Vegard (Wollan)'s RISC processor. <- saxat från Wikipedia
Senast redigerad av Magnus_K 9 december 2014, 01:51:07, redigerad totalt 1 gång.
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Hur använda Arduino UNO för att sampla och lägga i datab

Inlägg av Spisblinkaren »

Magnus min vän, du irriterar mig inte alls!

Det var mycket trevligt och lärorikt att titta på videon!

Jag är ganska snål (mot mig själv) av mig så kanske jag ändå nyttjar den tekniken.

Verkar ju faktiskt inte så svårt och skulle bara kosta mig en kristall plus ett par kondingar (var det 16MHz + 2X15pF?).

Så vad bygger du för roligt med din UNO R3?

MVH/Roger
PS
Mycket intressant att få veta vad AVR står för. Även om jag skäms lite för att jag var lat och bara frågade ;)

Man ska dock inte glömma att jag faktiskt har nåt fel på min CPU. Felet sitter antingen i A/D'n eller i mattedelen (troligast) så det kanske inte går att använda ovanstående trots allt då den förutsätter intakt CPU.

Fast det vore roligt att försöka nu när det verkar så lätt, menar jag :)
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

Re: Hur använda Arduino UNO för att sampla och lägga i datab

Inlägg av Magnus_K »

Ja det här var lärorikt för mig också. Kommer säkert i samma sits någon gång.

Japp, han säger i alla fall 16MHz och 2x15pF. Hur viktiga dessa värden är vet jag tyvärr inte.

Som sagt, jag själv har aldrig testat detta själv så vore himla snällt om du inte letar upp mig och kör ner en trasig UNO i halsen på mig :wink:

Jag håller på med ett larm med min. Köpte en GSM-modul som jag leker lite med. Går dock väldigt långsamt pga andra projekt.
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Hur använda Arduino UNO för att sampla och lägga i datab

Inlägg av Spisblinkaren »

Arduino-inköpet gick ju väldigt bra :(

Fick tillbaks precis samma fel.

Dessutom fick jag det tvivelaktiga nöjet att leta rätt på rätt COM-port (igen!)

Visade sig att den gamla enheten lagt beslag på COM 16 medans den nya gillar COM 17.

Vilket sofistikerat trams.

Nåväl, jag vet nu i alla fall att det inte är nåt fel på hårdvaran. Troligen mest fel på min kodning mao. Men vad gör man när man är kass på programmering?

En seriös fördel med mitt nyinköp är att Arduino plötsligt fått för sig att märka upp signalerna på sidan av kortet dvs när man sätter på en shield så ser man fortfarande signalernas namn även om shielden döljer eller inte visar dem.

MVH/Roger
cjonash
Inlägg: 613
Blev medlem: 20 maj 2011, 08:53:58
Ort: Göteborg

Re: Hur använda Arduino UNO för att sampla och lägga i datab

Inlägg av cjonash »

Med risk för att jag kan ha missuppfattat något, men är det inte så att felet du har på din Arduino uppstod när du satte i log-shielden?

Om det är så, kan det då vara så att några av de signalerna som du använder sedan tidigare också används av den shielden? Det skulle kunna förklara varför det plötsligt inte fungerar längre (och i så fall bör det då börja fungera om du plockar bort shielden igen).

En annan sak som kan vara bra att tänka på, och som tyvärr inte alltid framgår av tillgänglig dokumentation, är att en del bibliotek och funktioner använder samma resurser på kontrollern. T.ex. kan delay funktioner hamna i konflikt med bibliotek som använder samma timer till något annat.

Så både hårdvaran i form av den nya shielden, och dess mjukvara (om du lagt till det biblioteket) kan ställa till med problem som mycket väl skulle kunna ge de symptom som du beskriver.

Sen måste jag säga att jag beundrar den målmedvetenhet och drivkraft du visar i dina projekt. Den ena utmaningen efter den andra, och du löser dem samtidigt som du lär dig något och tar till dig den nyvunna kunskapen. Imponerande!! :tumupp: :tumupp:
cjonash
Inlägg: 613
Blev medlem: 20 maj 2011, 08:53:58
Ort: Göteborg

Re: Hur använda Arduino UNO för att sampla och lägga i datab

Inlägg av cjonash »

rogerk8 skrev:
Dessutom fick jag det tvivelaktiga nöjet att leta rätt på rätt COM-port (igen!)
Visade sig att den gamla enheten lagt beslag på COM 16 medans den nya gillar COM 17.
Vilket sofistikerat trams.
Ja, tyvärr är det här något som Windows envisas med att göra. Men du kan ändra det, så att den använder valfri COM-port, och det kommer den att komma ihåg så långe du sätter en enhet i samma USB-port. Du kan, så länge inte båda är inkopplade samtidigt, ge dem samma COM-port, så slipper du byta port i Arduino programmet.

Har inte datorn framför mig så jag kan inte göra några bilder, men du letar upp porten i enhetshanteraren (högerklicka på "Datorn" ikonen, välj "egenskaper" och leta rätt på och öppna "enhetshanteraren"). Du hittar din Arduino port under kategorin portar (förutsatt att den är inkopplad då). Genom att högerklicka på den aktuella porten och välja egenskaper kan du välja valfri COM-port (du kan behöva byta flik för att se den inställningen).
Du kan välja valfri port, även om den står som upptagen. Se bara till att välja en som inte används *samtidigt* som din Arduino.

Så länge enheten kopplas in i samma USB-port på datorn kommer den att koma ihåg vilken port den skall använda.

Du måste sedan starta om Arduino programmet för att den skall hitta den nya porten.
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Hur använda Arduino UNO för att sampla och lägga i datab

Inlägg av Spisblinkaren »

cjonash skrev:Med risk för att jag kan ha missuppfattat något, men är det inte så att felet du har på din Arduino uppstod när du satte i log-shielden?
Precis detta hände, den var stabil innan men när logger-shield (LS) trycktes dit blev den plötsligt instabil.
Om det är så, kan det då vara så att några av de signalerna som du använder sedan tidigare också används av den shielden? Det skulle kunna förklara varför det plötsligt inte fungerar längre (och i så fall bör det då börja fungera om du plockar bort shielden igen).
När jag tog bort LS var felet kvar. Och jag är ganska säker på att inga kommunikationssignaler kunde komma i konflikt då jag noggrant tagit reda på de som tillhör SPI (och UART) samt undvikit att använda dom. Iom att jag bara använder A0/A1 så är jag dessutom säker på att TWI heller inte störs.
En annan sak som kan vara bra att tänka på, och som tyvärr inte alltid framgår av tillgänglig dokumentation, är att en del bibliotek och funktioner använder samma resurser på kontrollern. T.ex. kan delay funktioner hamna i konflikt med bibliotek som använder samma timer till något annat.

Så både hårdvaran i form av den nya shielden, och dess mjukvara (om du lagt till det biblioteket) kan ställa till med problem som mycket väl skulle kunna ge de symptom som du beskriver.
Jag har inte ens lagt till nån LS-mjukvara än. Tycker inte det behövs i detta läget. Är det ett misstag, tror du?
Sen måste jag säga att jag beundrar den målmedvetenhet och drivkraft du visar i dina projekt. Den ena utmaningen efter den andra, och du löser dem samtidigt som du lär dig något och tar till dig den nyvunna kunskapen. Imponerande!! :tumupp: :tumupp:
Jag tackar dig cjonash för detta beröm!

Tack också för ditt försök att hjälpa mig!

Jag vill tillägga att när jag nu köpte denna nya UNO så var jag tyvärr så bekväm att jag skippade att låta den allena styra LED dvs jag tryckte på LS direkt och chansade.

Anledningen var som jag beskriver ovan att återgången från LS-bestyckning till utan LS-bestyckning inte gjorde nån skillnad för min ursprungliga UNO.

God fortsättning på Julen!

MVH/Roger
PS
När jag nu vet att den nya UNO kräver COM 17 så räcker det för mig. Men tack för att tipsade mig om hur man kan komma runt det käcka med virtuella portar :D
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Hur använda Arduino UNO för att sampla och lägga i datab

Inlägg av Spisblinkaren »

Igår fick jag hjälp av en kompis att hämta hem biblioteket för realtidsklockan (RTC) på min Arduino UNO.

Vilket inte var helt lätt skall tilläggas och detta trots direkta länkar.

Vi gjorde också ett helhjärtat försök att skriva av ett testprogram ur manualen.

Men när vi försökte kompilera det blev det tvärstopp.

Vi var nära att ge upp tills han råkade se att vårat nerladdade bibliotek innehöll exempelkod.

Så vi laddade in exempelkoden och försökte kompilera istället.

Gick utmärkt!

Efter lite amatörmässigt trixande lyckades jag tom få igång den seriella monitorn som bannemig visade tiden.

Korrekt tid dessutom!

Så nu är min UNO bestyckad med en en klocka!

Nästa steg blev att försöka förstå koden och flytta det viktigaste till mitt projekt.

Och jag lyckades till slut!

Importerade den dock bara till mitt "problemlösarprogram" som är ett mycket enkelt program som avser utröna varför min LED-modul beter sig så konstigt.

Men vet ni vad?

När jag nu kunde se värden på skärmen som UNO skickade till mig tänkte jag att då kan jag ju lika gärna lägga typ sekundvisningen inne i mitt skumma villkor (som alltså bara skall entras när sampelvärden avviker mer än +/-20LSB).

Jag har länge misstänkt att snurran entras trots att den inte borde det (då jag initialt fick fungerande snurra med +/-2LSB).

Genom att sätta gränsen till +/-20LSB kunde jag inte bara på mitt LED utan även på monitorn se att villkoret penetreras trots att det inte borde det.

Detta trots att sampling med +/-20LSB's noggrannhet inte är speciellt noggrant (motsvarar ungefär +/-50mV fel).

Jag ställde således samplingsupprepningen på 3s och ibland fick jag värden på skärmen tom så ofta som vid varje sampling!

Ibland gick det längre tid emellan.

Slutsatsen är inte helt enkel men eftersom två helt oberoende enheter gör på samma sätt vill jag tro att det är nåt fel med samplingen.

Jag har dock buffrat referensspänningen tidigare med 1000uF och det hjälpte inte.

Två olika UNO räknar ju heller inte fel.

Så det är fortfarande mystiskt varför UNO beter sig som den gör.

MVH/Roger
PS
UNO som den ser ut nu med LED-problemet passar faktiskt utmärkt för vidare programmering för lagring till SD. Jag behöver ju inte ens ratta på ratten så får jag ju nya värden :D

Först idag lärde jag mig hur man skärmdumpar aktivt fönster (Alt-"Print Screen") :)
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Hur använda Arduino UNO för att sampla och lägga i datab

Inlägg av Spisblinkaren »

Nu har jag debuggat lite till.

Jag har sett till så att det "statiska" värdet som tas först listas till vänster om det "dynamiska" värdet som tas efter 3s och som listas till höger.

Observera att värdenas diff ofta är bara lite mer än +/-20kg.

Undantaget inramat där det diffar nåt enormt plötsligt.

Kan nån tala om för mig vad detta är för fuffens?

Varför diffar värdena överhuvudtaget så mycket?

+/-2LSB (=2kg, i det här fallet) borde vara tillräcklig "brusreducering".

MVH/Roger
PS
En rolig sak är dock att mitt LED-display visar samma värde som (dynamiska) variabeln :D
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
j.po
Inlägg: 279
Blev medlem: 24 november 2008, 20:40:19
Ort: Halmstad
Kontakt:

Re: Hur använda Arduino UNO för att sampla och lägga i datab

Inlägg av j.po »

Är du 100% säker på att inspänningen är helt ren från brus och störningar? Med helt ren menar jag +-1LSB max. Kanske du behöver en kondensator på ingången.
Skriv svar