Sänka Volt utgångssignal på Arduino Mega

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
fosfor
Inlägg: 453
Blev medlem: 13 februari 2013, 05:43:15
Kontakt:

Sänka Volt utgångssignal på Arduino Mega

Inlägg av fosfor »

Hej!

Jag har en motorstyrning på 0-5V. Där 2.5V är stillastående.
Och 0V är fram, 5V är tillbaka.

Jag kan ju köra motorn åt ena hållet med en knapp.
Jag skulle vilja att min andra knapp ger t.ex. 0.2V på samma utgång.

Så att jag med två knappar kan köra fram och tillbaka.
En snabb googling så verkar det skilja lite hur folk gör. Vissa sätter komponenter efter Arduino utgången
och sänker spänningen på så vis. Men som jag förstår det så ska det gå att sänka spänningen på själva Arduinons utgång? :humm:

Någon som har en bra kod, eller guide för detta? :roll:

Motorstyrningen har en egen volt ut som man kan manipulera med.
Så i nuläget ligger den på ca 2.5V så att motorn står still om jag inte skickar ut något från Arduinon.
Så eventuellt behöver jag kanske ha en minusvolt från Arduinon för att få ner volten så att maskinen kan backa.
Alternativt att man har en konstant spänning från Arduinon som håller motorn still? Vilket kanske är mer riskabelt?
bearing
Inlägg: 11229
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Sänka Volt utgångssignal på Arduino Mega

Inlägg av bearing »

Det är inte svårt alls. Du behöver koppla ett lågpassfilter (t.ex. en resistor och en kondensator) till en PWM-utgång på din Arduino ("analog utgång"). Då kan programmet ändra spänningen över kondensatorn. Sen kopplar du bara från kondensatorn till ingången på din motorstyrning.

Här är koden:
analogWrite(pinne, pulsbredd);

pinne är numret på en utgång på din Arduino som kan ge PWM ("analog")
pulsbredd är ett nummer mellan 0 och 255, där 0 ger 0V, 255 ger 5V, och 127 ger 2,5V.

Lågpassfiltret kan t.ex. vara 10k och 10uf. PWM-frekvensen är ca 500Hz.

Ifall ingången på motorkontrollern har en betydande impedans kan du behöva köra med ett mindre motstånd, vilket kräver högre switchfrekvens. Då kan du använda detta bibliotek:
https://www.avdweb.nl/arduino/adc-dac/fast-pwm-dac
Användarvisningsbild
Icecap
Inlägg: 26105
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Sänka Volt utgångssignal på Arduino Mega

Inlägg av Icecap »

Alternativt kan man koppla ihop två utgångar med ett par motstånd, t.ex. 4,7k från varje utgång och andra ändan kopplat ihop.
Om du lägger ut '00' på de utgångar är spänningen i samlingspunkten 0V.
Om du lägger ut '01' eller '10' är spänningen 2,5V.
Om du lägger ut '11' blir spänningen 5V.
Användarvisningsbild
Wedge
Inlägg: 1026
Blev medlem: 8 juli 2012, 17:33:33

Re: Sänka Volt utgångssignal på Arduino Mega

Inlägg av Wedge »

fosfor skrev:... kanske ha en minusvolt från Arduinon för att få ner volten så att maskinen kan backa.
Volt är en enhet. Du kan ha en minusspänning (som mäts i Volt), och du kan få ner en spänning (som mäts i Volt).

EDIT:
Fick ett surt PM om att jag är språkpolis. Icke. Teknikpolis, kanske.
Användarvisningsbild
fosfor
Inlägg: 453
Blev medlem: 13 februari 2013, 05:43:15
Kontakt:

Re: Sänka Volt utgångssignal på Arduino Mega

Inlägg av fosfor »

Icecap:
Ser ut att vara ett enkelt och effektivt alternativ!
Att helt enkelt manipulera med Volten efter Arduinon, och inte via kod eller PWM.
Ska börja testa lite varianter! :)

Wedge:
Vad menar du? :humm:


bearing:
Det där ser intressant ut! Men jag förstår inte riktigt hur man skulle kunna ändra spänningen över kondensatorn?
Har du en förklaring för låta säga en 6 åring hur det fungerar rent fysiskt? :shock: :)
bearing
Inlägg: 11229
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Sänka Volt utgångssignal på Arduino Mega

Inlägg av bearing »

PWM på denna 5V-matade Arduino innebär att utgången växlar mellan 0V och 5V med en viss frekvens.
När utgången sätts till 5V börjar spänningen på kondensatorn öka
När utgången sätts till 0V börjar spänningen på kondensatorn minska

Bild
(här är matningsspänningen 3.3V, men principen är densamma)

Detta ger ett rippel, men medelspänningen är samma som 5V * pulsbreddsförhållandet. Om utgången växlar väldigt ofta (med hög frekvens), och/eller resistor/kondensator är stora, blir ripplet helt försumbart, och kondensatorn kommer anta en nästan ren likspänning, som är samma som medelspänningen (5V * pulsbreddsförhållandet).

Bild

Bilderna kommer härifrån, där du kan läsa mer:
https://www.allaboutcircuits.com/techni ... g-voltage/
danei
EF Sponsor
Inlägg: 26335
Blev medlem: 2 juni 2003, 14:21:34
Ort: Östergötland
Kontakt:

Re: Sänka Volt utgångssignal på Arduino Mega

Inlägg av danei »

Wedge: Jag har sett till att inte svara alls i tråden, just för att slippa få den stämpeln.

Då svarar jag inte på grundfrågan heller.
Mindmapper
Inlägg: 6389
Blev medlem: 31 augusti 2006, 16:42:43
Ort: Jamtland

Re: Sänka Volt utgångssignal på Arduino Mega

Inlägg av Mindmapper »

Tråkigt är det när folk inte får uttrycka sig på ett korrekt sätt.
Förstår inte varför det är så fel att korrigera misstag!
Användarvisningsbild
fosfor
Inlägg: 453
Blev medlem: 13 februari 2013, 05:43:15
Kontakt:

Re: Sänka Volt utgångssignal på Arduino Mega

Inlägg av fosfor »

För min del (jag som vill ha hjälp) så får ni gärna uttrycka er hur korrekt som helst.
Sen om jag förstår allt är en annan femma :)
Men från mig får ni inga arga e-mail iaf.

By the way.
Jag har nu mixat och donat här en hel del och inte fått allt att lira riktigt.

Jag har två utgångar från Arduinon, den ena går framåt, den andra ska gå bakåt.
Framåt fungerar i nuläget, inte bakåt. Framåt fungerar för den ger de 5V som den ska ge till motorstyrningen för att den ska gå framåt.
5V framåt
2.5V still
0V eller typ 0.3V är bakåt.

Motorstyrningen har ju bara en enda ingång, det ligger en 2.5V spänning på, en så kallad WIPER signal.
Som är som en slags säkerhetsgrej plus att den ser till att motorn bara står still när den ska stå still och inga knappar trycks.
Kruxet är ju att jag vill Sänka spänningen vid min andra kanal ut från Arduinon, så att den på något sätt dumpar spänningen
som ligger på ingången för motorstyrningen. Vilket visat sig vara lite knepigt att göra med knapptryckningen.
Jag hittade en PNP transistor (2N4403 -40V/0.6V) som jag med hjälp av ett vridmotstånd lyckats få den att dumpa spänningen
såpass mycket att motorn sakta rullar bakåt, men inte fått det att fungera med knapptryckning.

Jag är nybörjare på sånt här och känner att jag är både förvirrad men endå hyffsat nära lösningen.
Vilka komponenter behöver jag på andra kanalen för att sänka ner spänningen såpass att motorsignalen får mindre än 2.5V (så att den börjar rulla bakåt)?
Senast redigerad av fosfor 24 januari 2019, 16:51:10, redigerad totalt 2 gånger.
Användarvisningsbild
fosfor
Inlägg: 453
Blev medlem: 13 februari 2013, 05:43:15
Kontakt:

Re: Sänka Volt utgångssignal på Arduino Mega

Inlägg av fosfor »

Icecap:
Skulle du ha lust att förklara din modell lite närmre?
Det där med att "lägger ut 11" osv.
Användarvisningsbild
Klas-Kenny
Inlägg: 11291
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Sänka Volt utgångssignal på Arduino Mega

Inlägg av Klas-Kenny »

En ganska relevant fråga är, behöver du kunna styra motorns hastighet, eller räcker det med "full fram" och "full bak"?

Dvs, du behöver bara kunna sänka till 0V resp. höja till 5V, inget där emellan? (Mer än den 2,5V som motorstyrningen ger ut)

I så fall är det bara att koppla arduinons utgång direkt till motorstyrningen utan någonting däremellan.

Så kör du framåt med

Kod: Markera allt

pinMode(PIN_NR, OUTPUT);
digitalWrite(PIN_NR, HIGH);
Bakåt med

Kod: Markera allt

pinMode(PIN_NR, OUTPUT);
digitalWrite(PIN_NR, LOW);
Och stoppar motorn med

Kod: Markera allt

pinMode(PIN_NR, INPUT);
Användarvisningsbild
HUGGBÄVERN
Tidigare soundbrigade
Inlägg: 32626
Blev medlem: 23 augusti 2006, 22:44:11
Ort: Lilla Paris
Kontakt:

Re: Sänka Volt utgångssignal på Arduino Mega

Inlägg av HUGGBÄVERN »

fosfor skrev:Wedge:
Vad menar du? :humm:
Wedge menar att du troligen vill sänka SPÄNNINGEN på Arduinons utsignal från XXX Volt till YYY Volt, inte sänka volten.

Spänningen är namnet på den fysikaliska funktionen men Volt är själva sorten.
Jämför:
Ström - Ampere
Resistans - Ohm
Kapacitans - Farad
Temperatur - Grader Celcius/Kelvin
Fart - km/h
...
ghu
Inlägg: 585
Blev medlem: 6 juni 2010, 14:28:18

Re: Sänka Volt utgångssignal på Arduino Mega

Inlägg av ghu »

Då får jag som språkpolis rätta Wedge och huggbävern.
Enheterna volt, ampere mm ska skrivas med små bokstäver medan förkortningarna ska skrivas med stora bokstäver, V och A.
Användarvisningsbild
HUGGBÄVERN
Tidigare soundbrigade
Inlägg: 32626
Blev medlem: 23 augusti 2006, 22:44:11
Ort: Lilla Paris
Kontakt:

Re: Sänka Volt utgångssignal på Arduino Mega

Inlägg av HUGGBÄVERN »

Bra! Rätt ska vara rätt.

En sak till om volt. Volt ät ju en väldefinierad storhet -https://en.wikipedia.org/wiki/Volt, vilket betyder att en volt är en volt, varken mer eller mindre. Ska man öka eller sänka 'volten' får man härja med de tanter och farbröder som står bakom definitioner av storheter och be dem anpassa 1 volt så den blir mindre eller större än den volt vi har idag.
danei
EF Sponsor
Inlägg: 26335
Blev medlem: 2 juni 2003, 14:21:34
Ort: Östergötland
Kontakt:

Re: Sänka Volt utgångssignal på Arduino Mega

Inlägg av danei »

Nej, storheten är spänning. Volt är enheten.
Skriv svar