StormEagle Skrevet 30. desember 2013 Del Skrevet 30. desember 2013 Er det noen her som har prøvd Teensy? Den har en enormt mye kraftigere microkontroller (32 bit ARM Cortex-M4 72 MHz) og mer både minne (256K Flash Memory, 64K RAM, 2K EEPROM) og IO'er både analoge og digitale (21 analoge innganger, 34 digitale IO og 12 PWM utganger) og den kan vist programeres via arduino IDE'en Lenke til kommentar
weebl Skrevet 30. desember 2013 Del Skrevet 30. desember 2013 Microkontrollere er helt nytt for meg, ser ut til at Arduino er et greit sted å begynne. Hvilke startsett av disse: http://www.ebay.com/sch/i.html?_odkw=kondensator+100+uF&LH_FS=1&_osacat=0&_from=R40&_trksid=p2045573.m570.l1313.TR12.TRC2.A0.Xarduino+kit&_nkw=arduino+kit&_sacat=0 får jeg mest for pengene? Ellers er det verdt å nevne at jeg har kjøpt følgende: UNO R3 ATmega 328P16U2 2012 version bord 50 x Resistors 10K Ohms Breadboard og kabler til det. 1%1/4W Metal film resistor kit Multimeter En rekke dioder Hva burde jeg ha? vil få kjøpt alt jeg trenger til å komme veldig godt i gang og slipper å bestille på lang tid (leveringstid er så lang). Du får ikke mye moro uten noen sensorer og noen ut enheter. Selv synes jeg sparkfun inventors kit er en fin start, du finner sikkert billigere kits som er prikk like på ebay. Lenke til kommentar
Kakebakelate Skrevet 30. desember 2013 Del Skrevet 30. desember 2013 (endret) Er såpass lenge siden jeg har holdt på med noe programmering, så lurte på noen har et lite sekund til å se over koden og se de har et forslag til å skrive den litt vakrere. Tenkte på løkkedelen. const int pwPin = 7; long pulse, inches, cm; int led40 = 8; int led30 = 9: int led20 = 10; void setup() { Serial.begin(9600); //sets up rs232 pinMode(led40, OUTPUT); // sets port 8-10 as output pinMode(led30, OUTPUT); pinMode(led20, OUTPUT); pinMode(pwPin, INPUT); } void loop() { pulse = pulseIn(pwPin, HIGH); //147µs pr inch inches = pulse/147; cm = inches*2,54; /*Serial.print(cm); // sends the range to the computer Serial.print("cm"); Serial.println(); */ if(cm <= 40) //Turns on led 8 if object is nearer then 40 cm { digitalWrite(led40, HIGH); } else { digitalWrite(led40, LOW); } if(cm <= 30) //Turns on led 9 if object is nearer then 30 cm { digitalWrite(led30, HIGH); } else { digitalWrite(led30, LOW); } if(cm <= 20) //Turns on led 10 if object is nearer then 20 cm { digitalWrite(led20, HIGH); } else { digitalWrite(led20, LOW); } delay(500); } [/spoiler] Endret 30. desember 2013 av Runarbs Lenke til kommentar
weebl Skrevet 30. desember 2013 Del Skrevet 30. desember 2013 Er såpass lenge siden jeg har holdt på med noe programmering, så lurte på noen har et lite sekund til å se over koden og se de har et forslag til å skrive den litt vakrere. Tenkte på løkkedelen. const int pwPin = 7; long pulse, inches, cm; int led40 = 8; int led30 = 9: int led20 = 10; void setup() { Serial.begin(9600); //sets up rs232 pinMode(led40, OUTPUT); // sets port 8-10 as output pinMode(led30, OUTPUT); pinMode(led20, OUTPUT); pinMode(pwPin, INPUT); } void loop() { pulse = pulseIn(pwPin, HIGH); //147µs pr inch inches = pulse/147; cm = inches*2,54; /*Serial.print(cm); // sends the range to the computer Serial.print("cm"); Serial.println(); */ if(cm <= 40) //Turns on led 8 if object is nearer then 40 cm { digitalWrite(led40, HIGH); } else { digitalWrite(led40, LOW); } if(cm <= 30) //Turns on led 9 if object is nearer then 30 cm { digitalWrite(led30, HIGH); } else { digitalWrite(led30, LOW); } if(cm <= 20) //Turns on led 10 if object is nearer then 20 cm { digitalWrite(led20, HIGH); } else { digitalWrite(led20, LOW); } delay(500); } [/spoiler] Nå tar jeg dette rett ifra hodet uten mulighet for å teste men du kan vel lese av verdien, og så bruker du map() funksjonen for å gjøre om max og min til en verdi mellom 0 og 8 før du enkelt og greit setter verdien du fikk fra map funksjonen til rett led. Lenke til kommentar
Dr_VingTor Skrevet 30. desember 2013 Del Skrevet 30. desember 2013 Om du kan tillate at LEDene "blinker" (dette vil du ikke kunne se, det går alt for fort) digitalWrite(led20, LOW); digitalWrite(led30, LOW); digitalWrite(led40, LOW); if(cm <= 20) { digitalWrite(led20, HIGH); } if(cm <= 30) { digitalWrite(led30, HIGH); } if(cm <= 40) { digitalWrite(led40, HIGH); } Koden blir litt mer kompakt, og kanskje litt mer lesbar. Også litt usikker på om din multiplisering med 2,54 fungerer som tenkt da du ganger en float med long. Kommer vell ann på hva compileren gjør for deg. Kan hende du må gjøre en cast til float (av cm), og så tilbake til long. Eventuelt skrive om slik at du bare bruker helt tall (koden vil da bli kortere når den er kompilert og kjøre raskere da float er tregt på en AVR). Eks. multipliser med 254 i stede, og sjekk om cm er mindre enn 2000, 3000, og 4000. Du kunne delt cm på 100, men trur også deling er tregt. Ikke at dette nødvendigvis har noe betydning for din applikasjon, men det kan være vært å tenke på innimellom. Lenke til kommentar
Kakebakelate Skrevet 30. desember 2013 Del Skrevet 30. desember 2013 Takk skal dere ha, blei litt mer kompakt og oversiktlig med forslaget ditt Dr_VingTor. Når det gjelder avlesningen av lengden så har UNOen nok kraft iallefall når det skal leses av såpass sakte som jeg gjør det. Men husker at det kunne være et problem på de AVRene jeg har brukt før, men den hadde vell bare 1mhz klokkefrekvens. Lenke til kommentar
weebl Skrevet 31. desember 2013 Del Skrevet 31. desember 2013 Om du kan tillate at LEDene "blinker" (dette vil du ikke kunne se, det går alt for fort) digitalWrite(led20, LOW); digitalWrite(led30, LOW); digitalWrite(led40, LOW); if(cm <= 20) { digitalWrite(led20, HIGH); } if(cm <= 30) { digitalWrite(led30, HIGH); } if(cm <= 40) { digitalWrite(led40, HIGH); } Koden blir litt mer kompakt, og kanskje litt mer lesbar. Også litt usikker på om din multiplisering med 2,54 fungerer som tenkt da du ganger en float med long. Kommer vell ann på hva compileren gjør for deg. Kan hende du må gjøre en cast til float (av cm), og så tilbake til long. Eventuelt skrive om slik at du bare bruker helt tall (koden vil da bli kortere når den er kompilert og kjøre raskere da float er tregt på en AVR). Eks. multipliser med 254 i stede, og sjekk om cm er mindre enn 2000, 3000, og 4000. Du kunne delt cm på 100, men trur også deling er tregt. Ikke at dette nødvendigvis har noe betydning for din applikasjon, men det kan være vært å tenke på innimellom. om jeg husker dette rett så er en long og float basically den samme variablen i arduino så tror man skal kunne gjøre aritmetiske operasjoner på disse uten å caste de Lenke til kommentar
13375k1133z. Skrevet 7. januar 2014 Del Skrevet 7. januar 2014 (endret) Har kjøpt meg et inventors kit fra sparkfun, gleder meg til å jeg har det i hendene. Er det noen som vet ca hva leveringstiden på sparkfun er dersom man velger gratis frakt? er det forresten noen her som tilfeldigvis selger arduino uno + temp sensor? Gi meg gjerne en PM. Eventuelt noen som kjenner til en leverandør i norge med meget kort leveringstid og greie priser? Endret 7. januar 2014 av 13375k1133z. Lenke til kommentar
Kakebakelate Skrevet 7. januar 2014 Del Skrevet 7. januar 2014 Jeg bestilte mitt fra robonor og det tok ikke lang tid. Blir ikke så stor forksjell i pris heller pga moms som må legges til sparkfun sin pris. Lenke til kommentar
13375k1133z. Skrevet 14. januar 2014 Del Skrevet 14. januar 2014 (endret) Takker for tipset Runarbs, ser at Robonor har gode priser på noen komponenter og svært høy pris på andre. F.eks temperatur sensoren. 129.- for en digital temp sensor? kan kjøpe 10 stk av akuratt samme typen på nettbutikker i utlandet. (har gjort det, ulempen er den tidvis lange leveringstiden) Uansett: har laget en facebook gruppe (Arduino kjøp/salg) så det er bare å joine dersom du ønsker å selge eller kjøpe komponenter. Endret 14. januar 2014 av 13375k1133z. Lenke til kommentar
tingo Skrevet 15. januar 2014 Del Skrevet 15. januar 2014 Facebook? Var ikke det noe kidsa drev på med i gamle dager? Lenke til kommentar
Josten Skrevet 17. januar 2014 Del Skrevet 17. januar 2014 om jeg husker dette rett så er en long og float basically den samme variablen i arduino så tror man skal kunne gjøre aritmetiske operasjoner på disse uten å caste de En long er jo bare en stor int. Så ville da tro casting må til. Men usikker på om man får kompileringsfeil eller bare rare resultater. Lenke til kommentar
loddetinn Skrevet 18. januar 2014 Del Skrevet 18. januar 2014 Har akuratt laget min første temperatur sensor/viser, temperaturen vises 1 gang per min i serial monitor. Jeg ønsker å "utvide" programmet slik at temperaturen blir vist i en graf, hvordan kan dette gjøres? Har leitet en del uten å finne noe jeg kan bruke. Lenke til kommentar
Kakebakelate Skrevet 18. januar 2014 Del Skrevet 18. januar 2014 Da ville jeg ha sett på processing hvis jeg var deg. Lenke til kommentar
loddetinn Skrevet 18. januar 2014 Del Skrevet 18. januar 2014 Hei, takker for svar. Jeg har allerede sjekket ut processing, men kommer ikke så veldig langt. Lenke til kommentar
weebl Skrevet 19. januar 2014 Del Skrevet 19. januar 2014 om jeg husker dette rett så er en long og float basically den samme variablen i arduino så tror man skal kunne gjøre aritmetiske operasjoner på disse uten å caste de En long er jo bare en stor int. Så ville da tro casting må til. Men usikker på om man får kompileringsfeil eller bare rare resultater. Beklager, husket feil er float og double som er størelse i arduino Lenke til kommentar
tingo Skrevet 19. januar 2014 Del Skrevet 19. januar 2014 Hei, takker for svar. Jeg har allerede sjekket ut processing, men kommer ikke så veldig langt. Eksempel for Arduino: http://arduino.cc/en/tutorial/Graph lage graf i Processing: http://www.learningprocessing.com/examples/chapter-13/example-random-graph/ Youtube-video: HTH Lenke til kommentar
r2d290 Skrevet 28. januar 2014 Del Skrevet 28. januar 2014 Prøver å få til SPI-kommunikasjon mellom Raspberry pi og Arduino Nano. Har prøvd å følge denne guiden: http://mitchtech.net/raspberry-pi-arduino-spi/ Omtrent 9 av 10 ganger jeg prøver å kjøre fila fra Raspberry Pi, skjer det ingenting. 1 av 10 ganger blinker det grønt på TX på Arduinoen, og jeg får opp noen random tegn i Seriel monitoren. Både Seriell monitor og Serial.begin i koden står på 115200 (har prøvd 9600 også, uten hell). Noen tips til hva dette kan komme av? Lenke til kommentar
r2d290 Skrevet 28. januar 2014 Del Skrevet 28. januar 2014 Fikk tak i et logikk-analyse verktøy. Bilde en og Bilde 5 viser hvordan det typisk ser ut de få gangene arduinoen klarer å motta signal. De øvrige bildene viser hvordan det typisk ser ut når det ikke kommer noe tekst til seriell-monitoren. Jeg har et par ganger klart å skrive ut ordet "World" men ikke "Hello". Vanligvis viser den bare masse søppel, slik som dette: <]=I1SÈÓÔ“ÈÓÔ“ÈÓÔ“11<]=I111<]=I111<]=I1ÈÓÔ“11<]=I1‰‰äéêIˆ Lenke til kommentar
loddetinn Skrevet 1. februar 2014 Del Skrevet 1. februar 2014 Har noen digitale sensorer jeg ønsker å koble til en PLS, problemet er at PLSen kun har analoge innganger. Er det noen mulighet for å bruke arduino til å konvertere "signalene" fra sensorene til analog? Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå