Jump to content

Arduino


Martin

Recommended Posts

Då flera av oss har eller plannerar att bygga burkar med Arduino för att sköta en del funktioner i våra bilar tänkte jag att det var lika bra att starta en tråd där projekt kan diskuteras och tips och tricks kan samlas.

Jag har inte plannerat att göra mitt bygge riktigt ännu då det är långt kvar innan bilen är klar men lite funderingar har jag ju.

Det jag skall göra:

Blinkerskontroll styrt från rattknappar.

En immobilizer som kommer ge mig "key less entry". Dvs jag behöver ingen nyckel för att starta bilen. Jag skall dessutom inte behöva plocka upp en dosa ur fickan för att trycka på någon knapp då det kan vara jobbigt när man väl sitter i skalstolen.

Planer för framtida projekt:

En datalogger inklusive GPS.

Vidarebefodran av OBDII-data till min Dash 2 för att få in mer funktioner i det instrumentet.

Jag kommer nästa säkert göra ett PCB till detta då jag inte vill ha massa kontakter av tvivelaktig kvalitet i mitt bygge. Har stor respekt för vad vibrationer kan göra i en bil.

Link to comment
Share on other sites

Ett första tips.

Om man vill ha många funktioner så är ett RTOS (Real Time Operating System) väldigt behändligt då man slipper komplexa state-machines för att hantera parallella förlopp.

Jag hittade ett som heter NilRTOS som verkar fylla de behov man vanligen har. Har lekt lite med det och det var enkelt att komma igång med.

Link to comment
Share on other sites

...

"key less entry".

...

Vad är nyckel? Kanske nåt som alltid är med? Dvs Mobilen.

Räcker "Connected with paired unit" eller behövs nåt mer avancerat?

Jag har länge sökt efter den CanBuskod som aktiverar dieselvärmaren i bruksForden, men utan framgång.

Link to comment
Share on other sites

Följer också då mina planer är detsamma. Kan tipsa om elektronikforumet.com för ev extra tips om just elektronikbiten om inte annat.

jag personligen siktar på en PIC. men det är mest för att det är de som jag pillat med.

Link to comment
Share on other sites

Vad är nyckel? Kanske nåt som alltid är med? Dvs Mobilen.

Räcker "Connected with paired unit" eller behövs nåt mer avancerat?

Jag har länge sökt efter den CanBuskod som aktiverar dieselvärmaren i bruksForden, men utan framgång.

Har inte lurat ut vad min "nyckel" skall vara ännu. Mobil blir det inte det har jag bestämt. RFID var min första tanke men passiv RFID har aldeles för kort räckvidd.

Följer också då mina planer är detsamma. Kan tipsa om elektronikforumet.com för ev extra tips om just elektronikbiten om inte annat.

jag personligen siktar på en PIC. men det är mest för att det är de som jag pillat med.

Arduino kitet är ju en väldigt bra experimentlåda. Dessutom finns det ju en oerhörd mängd färdiga lib till Arduino. Möjligt att motsvarande finns tlll PIC då dessa ju var populära i hobby-projekt åtminstone förr. I och med att jag i slutändan kommer göra min egen PCB som inkluderar monteringen av Atmegan så blir ju slutresultatet i stort det samma.

Elektronikbiten är jag ingen klippa på. Har tänkt att jag får lära mig det jag behöver allt eftersom.

Link to comment
Share on other sites

Kul tråd :)

Har köpt ett gäng med Arduino (Nano och Mini) och olika sensorer + radiomoduler. Primära syftet är att bygga trådlösa sensorer till mitt hemautomationssystem.

Tips är aliexpress.com, nästan löjligt billigt. Vill man handla i Sverige så är http://www.m.nu riktigt bra

Jag är ingen klippa på elektronik-biten men med Arduino så finns det mycket kompetens på nätet och tröskeln är ganska låg.

När jag har labbat med detta så har en tanke dykt upp gällande NeoZeven och det är styrning till den elektriska vattenpumpen.

Den som Davies Craig tillhandahåller är för dålig/känslig och har två trasiga på hyllan och vid de sista körningarna i år så började den nuvarande bete sig konstigt; samtliga dioder började lysa. Då började tanken med Arduino :)/>/>

"Problemet" rörande detta är att det är ju ganska stora strömmar, upp till 10A. Så där behöver jag hjälp att designa elektroniken; löda och programmera skall jag nog fixa.

Har inte kollat något på RTOS men intressant, blir det snabbare boot-tid?

Edited by Jocke4U
Link to comment
Share on other sites

Kul tråd :)/>Har köpt ett gäng med Arduino (Nano och Mini) och olika sensorer + radiomoduler. Primära syftet är att bygga trådlösa sensorer till mitt hemautomationssystem.Tips är aliexpress.com, nästan löjligt billigt. Vill man handla i Sverige så är http://www.m.nu riktigt braJag är ingen klippa på elektronik-biten men med Arduino så finns det mycket kompetens på nätet och tröskeln är ganska låg.När jag har labbat med detta så har en tanke dykt upp gällande NeoZeven och det är styrning till den elektriska vattenpumpen.Den som Davies Craig tillhandahåller är för dålig/känslig och har två trasiga på hyllan och vid de sista körningarna i år så började den nuvarande bete sig konstigt; samtliga dioder började lysa. Då började tanken med Arduino :)/>/>/>"Problemet" rörande detta är att det är ju ganska stora strömmar, upp till 10A. Så där behöver jag hjälp att designa elektroniken; löda och programmera skall jag nog fixa.Har inte kollat något på RTOS men intressant, blir det snabbare boot-tid?

Jag har ingen koll alls på Arduino men har dom någon PWM modul så kan du använda den till att styra en kylfläktmotor reglering från en Volvo V70.

har en sån till min Davies Craig pump som styrs av Vipec:et.

Link to comment
Share on other sites

@Jocke: Starkare strömar är min akileshäl också :) Torde ju gå att läsa sig till vad man behöver på nätet. Reläer är ju min första tanke. RTOSet snabbar säkerligen inte upp upbootningen utan snarare tvärt om då det ju ligger ovanpå resten. Men dessa bootar nog snabbt nog för alla saker vi kan tänka oss att göra. Gjorde en mycket ovetenskaplig test med power on/off (svårt med USB-kontakten) och mitt testprogram som har 4 trådar (tre som blinkar med dioder digitalt och via PWM) och en "övervakningstråd" fick igång dioderna på ca 2 sekunder (subjektivt). Reset gav ungefär samma resultat. Har inte testat utan RTOSet.

@Gerhard: Arduino har ett antal PWM-pinnar. Beroende på vilken Arduino så har de lite olika frekvens och någon var kanske justerbar. Tror det rör sig i trakterna kring 500 Hz. Busenkelt att använda.

Link to comment
Share on other sites

Att styra större strömmar är enkelt. Finns både Relän, Transistorer mosfets och annat som man kan använda. Beror helt på vad man ska göra

T ex kan relän med inbyggd ttl ingång vara ett alternativ när man ska slå på och av lampor :)

Link to comment
Share on other sites

Nä inte så ! bättre icon_angry.gif

när vi ändå spinner loss på arduino, någo som testat att kodgenerera matlab simulink kod ner till en av de nya flytals burkarna med PWM och CAN ?

Ja vill nämligen styra en växellåda hypocrite.gif , har koll på algo delen men INTE just vad denna hw kan ( ni har väl sett att en M3 DKG är nästan gratis ( gratis är här en definitions fråga jämfört med ny pris)

Edited by LUPUS
Link to comment
Share on other sites

Vad jag vill göra gör motsvarande detta:

post-3181-0-19132700-1385234534_thumb.png

Svar ja men inte utan lite extra elektronik. Antar att det där dessutom inte är en styrsignal utan den faktiska matningen till pumpen?!

Hur denna elektronik ser ut har jag dock noll koll på :)

Link to comment
Share on other sites

Vad jag vill göra gör motsvarande detta:

post-3181-0-19132700-1385234534_thumb.png

Det är inget problem.

Tex har jag en funktion, som jag använder i jobbet, som jag kodat till Arduino för skojs skull.

Ett beskrivande namn är "Börvärdeskurva".

Funktionen är att vid önskade gränser välja önskade parametrar för en önskad funktion. I detta fall nyttjas räta linjens ekvation som funktion. Kompletterar man med parameterstyrd paus/gångtid så har du en komplett lösning.

Denna pryl, kopplad till Arduinon, håller kanske för din pump? 15-20A?

15A H-brygga

Link to comment
Share on other sites

Det är inget problem.

Tex har jag en funktion, som jag använder i jobbet, som jag kodat till Arduino för skojs skull.

Ett beskrivande namn är "Börvärdeskurva".

Funktionen är att vid önskade gränser välja önskade parametrar för en önskad funktion. I detta fall nyttjas räta linjens ekvation som funktion. Kompletterar man med parameterstyrd paus/gångtid så har du en komplett lösning.

Denna pryl, kopplad till Arduinon, håller kanske för din pump? 15-20A?

15A H-brygga

Här kommer mina bristande hårdvarukunskaper in i bilden.

Jag är med på att man får till fyrkantvågen enkelt. I fallet med EWPn så är det säkerligen enklast att bara toggla en digtalpinne då det är så låg frekvens. Men fixar en sådan brygga att rampa upp spänningen från 6V -> 12V? Hur styr man det?

Link to comment
Share on other sites

Mmmm, nu är jag inte säker på om du menar att jag valt fel pryl, eller om du vill veta hur PWM-styrning, eller hur prylen fungerar?

Förhoppningsvis de senare. :)

PWM är i princip en fyrkantvåg som har varierande "Till"-tid.

Liten förklaring:PWM

Arduino har färdig hantering för PWM på några utgångar. I prylen, en H-brygga med PWM-ingång, omvandlas signalen till en styrsignal till motorn. Dvs större PWM-utsignal från Arduino ger högre hastighet på motorn. Man kan förenklat säga att utspänningen till motorn ökar.

Just den länkade prylen har även funktioner för rotationsriktning, bromsning och larm. Bra att ha ibland.

Link to comment
Share on other sites

Njae,

Om man tittar på Jockes diagram dom han vill återskapa så har den dels två olika perioder med fyrkantvåg. Med tanke på den låga frekvensen på dessa så skulle jag inte kalla just det PWM även om det kanske rent tekniskt är det. Den delen förstår jag hur man får till. Men sedan rampar spänningen upp från 6V till 12V och det är jag oklar över hur man får till.

I PWM-termer kanske det är så enkelt som att man kör 50% duty cycle där man skall ha 6V och sedan när man skall rampa upp från 6V till 12V så rampar man upp duty cycle till 100%. Det var kanske precis det du menade? Blev lite klarare för mig själv när jag formulerade problemet i ord.

Link to comment
Share on other sites

Nu är jag med också!

Ja precis, 50% PWM kan vara minsta utsignal och motsvara tex 6V.

Temp-värdena från börvärdeskurvan styr därefter paustiden också.

Kallare än -20: 30Sek paustid.

Mellan -20 och -5: 10 Sek paustid.

Varmare än -5: Ingen paustid.

Link to comment
Share on other sites

Nu är jag med också!

Ja precis, 50% PWM kan vara minsta utsignal och motsvara tex 6V.

Temp-värdena från börvärdeskurvan styr därefter paustiden också.

Kallare än -20: 30Sek paustid.

Mellan -20 och -5: 10 Sek paustid.

Varmare än -5: Ingen paustid.

Samt att man rampar upp PWM till 100% när det går från -5 till 0 (förutsättning att man matar med 12V vilket var det som gav 50% = 6V). Eller?

Link to comment
Share on other sites

Några Gt 40 åkare med problem hade lagt till just en "bakgrunds" spänning på min 6 volt till sin davies, dett a för att inte förorsaka lokala "hotspots" vid uppstart och körning direkt, tydligen satt temp givaren inte optimalt i alla motorer för att verkligen visa vad tempen i toppen är och då kan man riskera "kall" hotspots när vattnet står helt still.

Inbillar mig att det var något sådant jag har haft eller helt enkelt en buggande controller, men fakta säger att alla mina kokningar hände efter exact 2-3 km och det med en ganska osnäll in i bil hög effekt.

Edited by LUPUS
Link to comment
Share on other sites

Som av en händelse har jag funderat lite på det idag...

Risken är att nåt slår sej om det blir fläckvis dålig kylning?

Vore det inte bättre att alltid ha tillräcklig fart på pumpen, när den ska köra?

Och antingen reglera pumpen med på/av, för att undvika torrkokning/ånglås?

Och/eller istället styra varvtalet på elfläkten?

Link to comment
Share on other sites

För att kommunicera med trionic5 behövs bara 12 V och en bluetooth-adapter :thumbsup:

Kopplade upp det lite snabbt och fick kontakt med telefonen direkt.

En potentiometer simulerar gaspedal :racesmile:

Nu gäller det att få in K-linan (iso 9141-2) i Arduinon.

Hoppas slippa bluetooth-kopplingen och köra med kabel mellan ecu:n och arduinon.

t5ecu.jpg

Link to comment
Share on other sites

Tycker absolut du skall köra med bara kabel. Tittade som hastigast på det för någon månad sedan och det verkade trivialt. Blir en del kod att skriva för att ta emot meddelandena men inget komplicerat.

Direktkoppling: http://ecomodder.com/forum/showthread.php/obd-mpguino-gauge-2702.html#post33255

Edited by Martin
Link to comment
Share on other sites

Lite högre tröskel ( eller ganska hör kanske ) , men vill du inte snacka på CAN bussen och komma åt ALLA interna variabler ? på k.linan tar du ju bara OBD standarden

Finns det verkligen mer som man vill visa under drift (mitt mål)? Möjligen för tuning eller om man vill logga ordentligt.

Det jag alltså egentligen undrar är om det är någon nytta med det?

Link to comment
Share on other sites

Finns det verkligen mer som man vill visa under drift (mitt mål)? Möjligen för tuning eller om man vill logga ordentligt.

Det jag alltså egentligen undrar är om det är någon nytta med det?

ÄR inte tändvinkel och spikindikering i real tid viktiga parametrar ;- )

Link to comment
Share on other sites

Gjorde ett litet embryo till dash :)

Arduino Uno som huvuddator. Realtidsklocka med batteribackup. Arduino Pro Mini som slavdator som känner av potentiometerns läge (simulerar tanksensorn) och tar in temperatur från en 18b20. 16x2 teckens LCD (ska bli 20x4).

All kommunikation sker via tvåtråds I2C, så det är bara fyra kablar som behövs mellan alla enheter, inkl. jord och 5 V. Skönt att slippa massa kablar framför allt till displayen.

Kopplingsdäcket används bara för att parallellkoppla I2C-signalerna och spänningsmatningen.

Tankmätarens värden har jag kollat upp sedan tidigare, så det ska stämma (halvfull 27-literstank på bilden). Fick en snilleblixt för att slippa fladdrande värden när bränslet skvalpar runt.

Jag adderar 99 % av det gamla värdet med 1 % av det nya. Det ger en tröghet i systemet som gör att tankvärdet kan ändras ungefär 1 liter per minut som mest.

Alltså ungeär:

new_value = 0.99*old_value + 0.01*new_value

Sen kollar jag upp vad det värdet motsvarar i liter i en array.

dash01_640.JPG

Link to comment
Share on other sites

Ser kul ut.

Hur har du tänkt packa det?

Hur har du tänkt mata det? Är själv lite skeptisk till att bara slänga på bilens 12V rakt av. Den brukar inte vara vacker och cranking kan ta ned den ordentligt lågt.

Edited by Martin
Link to comment
Share on other sites

Ser kul ut.

Hur har du tänkt packa det?

Hur har du tänkt mata det? Är själv lite skeptisk till att bara slänga på bilens 12V rakt av. Den brukar inte vara vacker och cranking kan ta ned den ordentligt lågt.

Förr i tiden när jag höll på med bilstereo var det vanligt att koppla en diod i serie med matningen till radion och kondensatorer som höll spänningen just i startögonblicket.

Link to comment
Share on other sites

Jag lärde mig mycket när jag byggde min hastighetsmätare: http://forum.locostsweden.se/index.php?showtopic=4447&view=findpost&p=113299

Hade stora problem med störningar. Fungerade när jag drev den på batteri så jag drog slutsatsen att störningarna kom in via strömmatningen.

Kopierade kretsen från strömmatningen till Megasquirt 3, kopplingsschema finns fritt. La även till lite extra skydd.

Blev bättre, men inte bra.

Visade sig att störningarna kom in via sensorn på framhjulet. Satte en optokopplare innan ingången på Arduinon och sedan var det perfekt.

Så jag kör samma strömmatning till detta projektet.

Angående paketeringen blir det nog något liknande min hastighetsmätare men med tunn plexi framför displayen.

Link to comment
Share on other sites

  • 2 weeks later...

Fick hem den riktiga displayen. 125x45 mm stor och ungefär dubbelt så stora tecken som en vanlig LCD. :thumbsup:

La in lite platshållartext, bara understa raden som är på riktigt.

Är lite inkonsekvent med förkortningar, enhetsbeteckningar och symboler för att få bra läsbarhet :)

Vatten- och oljetemp kommer från 18b20-sensorer.

Exh är avgastemperatur och kommer från en typ-K-sensor via en MAX31855.

Bar är oljetrycket och kommer från en vanlig resistiv sensor.

AFR är bredbandslambdan och där står en Innovative för signalen.

13.7V är batterispänningen och den kontrolleras mot en 2,5 V spänningsreferens (LM385).

25A är strömmen från eller till batteriet och tas från en ACS758 som kan mäta 100 A i båda riktningarna. Ska inte mäta startmotorn dock.

Understa raden har klocka (DS1307), utetemperatur (18b20), tankmätare och tripmätare. Tripmätaren ska visa totalt antal mil de första sekunderna.

Hastighet, laddtryck och varvtal visas på separata mätare.

Vad mer vill man mäta?

dash02_640.JPG

Link to comment
Share on other sites

Rikard L: --- Exh är avgastemperatur och kommer från en typ-K-sensor via en MAX31855 ---

Jag har en Arduino, kan tyvärr för lite om den just nu, En typ-K-sensor kanske är rätt grej för mig. Jag vill mäta temperaturer inom intervallet +20C till +120C. Då kan jag mäta tempen på vattnet i pannanläggningen och acktankarna. Eller kan det finnas andra sensorer som passar bättre.

Arduino datorn hur många olika temp kan mätas och få plats på den större skärmen du har i ditt inlägg. Går det att mäta på 6 ställen med samma dator och 6 stycken K-sensorer?

En K-sensor = dyr? samt vad är en MAX31855? Behövs det 6 sådana också? Dyra?

Link to comment
Share on other sites

Ska du bara mäta vattentemp på din panna så räcker ds18b20. Sådanna har jag runt 300st liggandes om det är så att nån behöver. Brukar slänga ut dem för en 10a st på tradera lite då och då.

type-k då snackar man oftast temperaturer upp mot 1000 grader eller mer.

Link to comment
Share on other sites

daromer: Låter mycket intressant. Finns det någon länk till hur en sådan mätning skulle kunna se ut.

Önskemålet är att kunna läsa av:

- temp på 6 (kanske 8) ställen

- presentera dessa på en skärm

- kanske om det går kunna lagra eller skicka värden till en enkel databas i huset eller bara ett minneskort med dag + tid + mätare1 till n

om det går att få in i samma system kunna styra en stegmotor eller liknande, jag har 4 "plåtstegmotorer" som var med Arduino satsen samt jag har köpt till två betydligt mer stabila cirka 150kr stegmotorer.

syftet med stegmotorn är att kunna stänga en draglucka om det blir strömavbrott och pannan är nyladdad och jag precis åkt till jobbet. Styrningen skulle kunna ske med att Arduino känner att nätet på cirkpumparna försvann eller att tempen i pannan stiger över ett kritiskt värde då slås dragluckan igen och pannan "kvävs" eller i alla fall inte kokar.

Får jag sedan ytterligare drömma så kanske Arduino kan skicka ett SMS till mig så jag vänder hem igen för att andra manuella åtgärder.

Vad tror ni realiserbart inom ramen för ett skapligt enkelt projekt? Eller blir det för komplicerat med de extra önskemålen?

Edited by cealm
Link to comment
Share on other sites

Vill man använda Arduino för att bygga intelligens i huset så kan det vara idé att titta på Z-wave som går att kombinera med trådlösa sensorer byggda runt Arduino. Har börjat denna resa men har en del att lära/bygga :)

Två bra länkar:

http://www.byggahus.se/forum/villalarm-hemautomation/201788-z-wave-da-haus-hemautomation.html

http://www.byggahus.se/forum/villalarm-hemautomation/218947-bygga-egna-sensorer-hemautomation.html

samt en artikel om Henrik (hek) http://hemma.aftonbladet.se/2013/11/automatiskt-och-fjarrstyrt-har-de-sveriges-smartaste-hem/

Link to comment
Share on other sites

Rikard L: Låter lovande. Jag får ekipera upp mig med display, troligen av samma typ som den du köpte. Plus en bunt med andra saker. Det är kanske bäst att börja i liten skala tex läsa ett tempvärde och sedan bygga vidare. Vad jag förstår av tråden finns det mycket kunskap, tips och hjälp här. Styr och regler på det här sättet är nytt för mig. Datorer i övrigt är faktiskt så att jag till och med kan skriva program i Cobol även om det var ett tag sedan kanske 15 år......... eller 25.....

Link to comment
Share on other sites

Finns ju gott om step by step instruktioner på nätet för Arduino så tvivlar inte alls på att du relativt snart kan koda till den om du har pysslat med det förr.

Ta en titt på: http://arduino.cc/en/Tutorial/HomePage

Styr och regler är ju i sig inte svårt med en Arduino om man kan de algoritmer man skall använda. Själv är jag dock så rostig på just den biten att jag nog skulle få kraftigt oscilerande system :)

Link to comment
Share on other sites

Vill du gå en enklare väg så kör på en Raspberry pi eller liknande istället för en arduino. Givetvis inte lika skoj dock :)

Jag har runt 70 tempsensorer hemma lite var stans. Har även andra givare. Jag styr allt ifrån strömuttag till lampor till hela min värmestyrning i huset via 1wire saker. Har även 1wire givare kopplade på ett par musfällor så jag vet när dom löst ut :D

Link to comment
Share on other sites

Ok! Jag har en Raspberry. Äntligen kanske jag får användning för den. 70 temp sensorer är mer än vad jag behöver. Men stegmotor?

Då kanske det är ett bättre alternaiv som du säger även om det skulle vara lite "tråkigare".....

Tråkigheten den kan jag stå ut med.

Hur kommer jag igång? Tips?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...