Läsa 12V signal med en MCU?
Läsa 12V signal med en MCU?
Hade en fundering angående 12v och mcu:er.
Om jag vill läsa en 12volts signal från en bil och vill använda säg en ATmega328 med arduino kod, så känns en vanlig spänningsdelare med några motstånd som en enkel lösning, men det känns inte så säkert? Vid till exempel en spänningstopp känns det som att man lätt bränner mcu:n?
Vad är igentligen en "säker" metod men som fortfarande är hyffsat enkel och billig? Något transistor baserat?
Om jag vill läsa en 12volts signal från en bil och vill använda säg en ATmega328 med arduino kod, så känns en vanlig spänningsdelare med några motstånd som en enkel lösning, men det känns inte så säkert? Vid till exempel en spänningstopp känns det som att man lätt bränner mcu:n?
Vad är igentligen en "säker" metod men som fortfarande är hyffsat enkel och billig? Något transistor baserat?
Senast redigerad av blueint 5 oktober 2013, 00:05:50, redigerad totalt 1 gång.
Anledning: var: Läsa 12v signal.
Anledning: var: Läsa 12v signal.
Re: Läsa 12v signal.
Om du vill vara helt säker, använd en optokopplare.
Annars kan man till exempel använda resistor + zenerdiod.
Mvh Jonas

Annars kan man till exempel använda resistor + zenerdiod.
Mvh Jonas
Re: Läsa 12V signal med en MCU?
Jo klart man kan använda optokopplare...
Då menar du zenardiod som ett "överspänningsskydd"?
Då menar du zenardiod som ett "överspänningsskydd"?
Re: Läsa 12V signal med en MCU?
Om det är digital info så funkat ju en transistor med lämpligt basmotstånd eller optokopplare.
Om analogt så kan man väl använda en förstärkare (försvagare) för att skala ner signalen. Kanske lite väl komplicerat imförhållande till spänningsdelare och zener men kanske mer robust.
Om analogt så kan man väl använda en förstärkare (försvagare) för att skala ner signalen. Kanske lite väl komplicerat imförhållande till spänningsdelare och zener men kanske mer robust.
Re: Läsa 12V signal med en MCU?
Det finns många sätt - men jag gillar att vara säker och utgår därför oftast från att det 12V signal alstras av ett störigt miljö, därmed är optokopplare grejen! Med en sådan kan man isolera helt, alltså ingen anslutning via GND heller, mycket bra ur störningshänseende.
Re: Läsa 12V signal med en MCU?
Är det fastställt att signalen är digital och inte analog? En optokopplare är ju inte precis lineär 
Om anlogt så borde man väl också kunna använda en trafo för att växla ner till Arduino 0-5V - då får man ju också isolation och visst skydd mot spikar eller?

Om anlogt så borde man väl också kunna använda en trafo för att växla ner till Arduino 0-5V - då får man ju också isolation och visst skydd mot spikar eller?
- prototypen
- Inlägg: 11105
- Blev medlem: 6 augusti 2006, 13:25:04
- Ort: umeå
Re: Läsa 12V signal med en MCU?
Det är ju bara det att det är lätt att bränna en optokopplare också.
Jag föreslår motstånd som ett T med en kondensator över den lodräta.
Kolla i databladet vad klampingdioderna tål och räkna vad impedansen från motstånden blir och det går ganska fort att komma upp i en tålighet på 1000 volt.
Protte
Jag föreslår motstånd som ett T med en kondensator över den lodräta.
Kolla i databladet vad klampingdioderna tål och räkna vad impedansen från motstånden blir och det går ganska fort att komma upp i en tålighet på 1000 volt.
Protte
Re: Läsa 12V signal med en MCU?
> så borde man väl också kunna använda en trafo för att växla ner till Arduino 0-5V
Visa gärna ett schema över hur en trafo "växlar ner" 12V likström till en lägre spänning!
Visa gärna ett schema över hur en trafo "växlar ner" 12V likström till en lägre spänning!
- prototypen
- Inlägg: 11105
- Blev medlem: 6 augusti 2006, 13:25:04
- Ort: umeå
Re: Läsa 12V signal med en MCU?
Det är ju klart att man kan, omvandla signalen till AC in i trafon och koppla till uC.
Analoga signaler går att omvandla till frekvenser som kopplas med hjälp av en trafo till uC som får räkna frekvensen isf att använda ADC:n.
Alla sätt är bra utom de dåliga.
Protte
Analoga signaler går att omvandla till frekvenser som kopplas med hjälp av en trafo till uC som får räkna frekvensen isf att använda ADC:n.
Alla sätt är bra utom de dåliga.
Protte
Re: Läsa 12V signal med en MCU?
Självklart går det inte "med en trafo".
Skit samma, en optokopplare är enklast...
Skit samma, en optokopplare är enklast...
Re: Läsa 12V signal med en MCU?
Jodå vi snackar långsamma signaler, en frekvens på typ 0.5-1Hz max?
Och ja det är digitala signaler, på eller av. Men som Icecap skrev så utgår jag också från att 12V är från en störigmiljö, ganska direkt från ett bilbatteri som sitter i en bil
Och ja det är digitala signaler, på eller av. Men som Icecap skrev så utgår jag också från att 12V är från en störigmiljö, ganska direkt från ett bilbatteri som sitter i en bil

Re: Läsa 12V signal med en MCU?
En annan möjlighet är just att ha motstånder mellan, jag har dock en ovilja att inte ha någon aktiv krets mellan signalen och µC'n, alltså t.ex. en transistor, bufferkrets (CMOS-logik 4050 är bra till detta), optokopplare eller liknande.
Är man rimligt säker på miljön kan man välja att "bara" ha ett motstånd mellan input och ett knutpunkt. Motståndsvärde på kanske 10k - 47k är ofta helt OK, såklart beroende på inkommande spänning. Samtidig har man en spänningsdelare om det behövs (t.ex. 12V -> 5V) och en kondensator som begränsar de snabbaste pulser. Självklart har man en clamper-diod i någon form, jag använder 4,7V zenerdioder. Från knutpunkten finns det sedan ytterligare ett motstånd in till µC'n - bara ifall. 10K är OK är med.
Är man rimligt säker på miljön kan man välja att "bara" ha ett motstånd mellan input och ett knutpunkt. Motståndsvärde på kanske 10k - 47k är ofta helt OK, såklart beroende på inkommande spänning. Samtidig har man en spänningsdelare om det behövs (t.ex. 12V -> 5V) och en kondensator som begränsar de snabbaste pulser. Självklart har man en clamper-diod i någon form, jag använder 4,7V zenerdioder. Från knutpunkten finns det sedan ytterligare ett motstånd in till µC'n - bara ifall. 10K är OK är med.
Re: Läsa 12V signal med en MCU?
Tja, det var ju formulerat som en fråga och inte ett påstående men får erkänna att jag hade en föreställning att man genom att driva en ström genom ena lindningen runt en ferromagnetisk ring kunde få ut en annan spänning på andra sidan och detta även utan att nödvändigtvis alternera polaritet och därmed strömriktning.sodjan skrev:> så borde man väl också kunna använda en trafo för att växla ner till Arduino 0-5V
Visa gärna ett schema över hur en trafo "växlar ner" 12V likström till en lägre spänning!
Förhållandet mellan spänningarna på endera sidan skulle sedan vara likställt förhållandet mellan antalet lindningsvarv på respektive sida.
Analogt med detta drar man ju likström genom en spole i en solenoid för att få kärnan att röra sig. Fast mycket riktigt alternerar ju faktiskt strömmen från noll till något här så ja, det är ju AC.
I motsättning till ovan har jag för mig att en stav måste RÖRA sig genom ett statiskt magnetfält för att en ström skall induceras genom densamma. Om magnetfältet växlar behöver staven dock inte röra sig.
Återigen, detta är en fråga - har jag fått allt om bakfoten?
Allt detta under förutsättning att vi talade om en analog signal. Detta var inte fastställt när jag skrev men jag har nu förstått att det är digitalt och i så fall röstar jag helt klart på en optokopplare - med rätt motstånd i förhållande till strömtålighet bör det funka precis hur bra som helst tycker jag.
Re: Läsa 12V signal med en MCU?
Funkar det om ingången ifråga klarar/följer Volvo STD 515-0003?
I sådana fall så kan du koppla enligt följande schema.
D11 kan du byta ut till en som är spec. 5V samt R3 är inte nödvändig om MCU:n i fråga har intern pull-up på ingången.
T3 är också "överflödig" om du vill skicka in signalen direkt på pinnen
Edit:
Om det är fler digitala ingångar som ska läsas av så kan du skippa T3 och använda dig av exempelvis en 74LVX14 så har du 6 ingångar till MCU:n
I sådana fall så kan du koppla enligt följande schema.
D11 kan du byta ut till en som är spec. 5V samt R3 är inte nödvändig om MCU:n i fråga har intern pull-up på ingången.
T3 är också "överflödig" om du vill skicka in signalen direkt på pinnen
Edit:
Om det är fler digitala ingångar som ska läsas av så kan du skippa T3 och använda dig av exempelvis en 74LVX14 så har du 6 ingångar till MCU:n
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.