Hjälp med kod Arduino - visa volt på oled
Re: Hjälp med kod Arduino - visa volt på oled
Det är helt rätt, jag som får träna upp min läskunnighet
Nästa fråga, nu har jag en potentiometern som ger värdet på enklaste vis mellan 0 - 5 volt.
Om jag vill byta den mot en temperaturgivare som då har en startpunkt på ett negativt värde. Vad behöver man göra för att få det att fungera?
Nästa fråga, nu har jag en potentiometern som ger värdet på enklaste vis mellan 0 - 5 volt.
Om jag vill byta den mot en temperaturgivare som då har en startpunkt på ett negativt värde. Vad behöver man göra för att få det att fungera?
-
- Inlägg: 7809
- Blev medlem: 26 maj 2009, 12:20:37
- Ort: Kristinehamn
Re: Hjälp med kod Arduino - visa volt på oled
Inte så konstigt att du får ett heltal när du deklarerat a som int "int a = (voltage);"Varför använder du a i stället för voltage överhuvudtaget?
Testat detta som sodjan länkade till?
Testat detta som sodjan länkade till?
Kod: Markera allt
static float f_val = 123.6794;
static char outstr[15];
void setup() {
dtostrf(f_val,7, 3, outstr);
Serial.begin(9600);
Serial.println(outstr);
}
void loop(){
}
Re: Hjälp med kod Arduino - visa volt på oled
Jag provade den men fick det inte att fungera, dock beror det nog mer på min okunskap än koden.
Jag använde mig av den andra länken han skickade.
Jag ska göra ett nytt försök idag, men hur ska jag på enklaste vis bli av med ”a” då?
Jag använde mig av den andra länken han skickade.
Jag ska göra ett nytt försök idag, men hur ska jag på enklaste vis bli av med ”a” då?
Re: Hjälp med kod Arduino - visa volt på oled
Enklast hade varit att ta en temperatursensor som är digital (t.ex. DS18B20).
Men OK, om din analoga givare kör med negativa spänningar måste du offsetta spänningen medelst t.ex. en op-amp. Det går på andra sätt också men då det är oklart exakt vilken sensor det rör sig om är bättre svar omöjliga.
Har du kollat i databladet om det finns en lösning för detta?
Men OK, om din analoga givare kör med negativa spänningar måste du offsetta spänningen medelst t.ex. en op-amp. Det går på andra sätt också men då det är oklart exakt vilken sensor det rör sig om är bättre svar omöjliga.
Har du kollat i databladet om det finns en lösning för detta?
-
- Inlägg: 7809
- Blev medlem: 26 maj 2009, 12:20:37
- Ort: Kristinehamn
Re: Hjälp med kod Arduino - visa volt på oled
I ditt fall flyttar du förstås inhämtningen och utskriften till loopen. Detta är bara ett exempel på att det funka (testat på Uno)
Kod: Markera allt
float voltage = 123.6794;
static char outstr[15];
void setup() {
dtostrf(voltage,7, 3, outstr);
Serial.begin(9600);
Serial.println(outstr);
}
void loop(){
}
Re: Hjälp med kod Arduino - visa volt på oled
Jag har inte köpt någon givare än så om en digital är bättre så köper jag en sådan direkt av den typ du nämner.Icecap skrev:Enklast hade varit att ta en temperatursensor som är digital (t.ex. DS18B20).
Men OK, om din analoga givare kör med negativa spänningar måste du offsetta spänningen medelst t.ex. en op-amp. Det går på andra sätt också men då det är oklart exakt vilken sensor det rör sig om är bättre svar omöjliga.
Har du kollat i databladet om det finns en lösning för detta?
Min fundering var egentligen hur det presenteras, Med en analog tempgivarw börjar ju skalan på tex -25C, hur får man koden att tolka en viss spänning till ett negativt tal och presentera detta?
Re: Hjälp med kod Arduino - visa volt på oled
vad menar du med att den börjar på -25°
en analog tempgivare kan ju inte ge ut negativ spänning och du matar den med +5V
är det att specen för givaren börjar på -25°.
det handlar ju bara om att skriva vilken resistans den ger ut med början vid -25°
i praktiken beror allt på hur du kopplat och vilka komponenter du använder.
en analog tempgivare kan ju inte ge ut negativ spänning och du matar den med +5V
är det att specen för givaren börjar på -25°.
det handlar ju bara om att skriva vilken resistans den ger ut med början vid -25°
i praktiken beror allt på hur du kopplat och vilka komponenter du använder.
Re: Hjälp med kod Arduino - visa volt på oled
Jag är helt med på vad du menar, men när jag i min kod som den är nu matar in 0V visar oled 0, när jag matar in 5V visar oled 5. Och detta reder jag ut att ändra i koden så tex vid 5V visar oled 100.
Men om jag ist skulle vilja att vid 0V visar oled -25 och 5V visar 100.
Hur skulle du koden se ut?
Men om jag ist skulle vilja att vid 0V visar oled -25 och 5V visar 100.
Hur skulle du koden se ut?
- Klas-Kenny
- Inlägg: 11328
- Blev medlem: 17 maj 2010, 19:06:14
- Ort: Växjö/Alvesta
Re: Hjälp med kod Arduino - visa volt på oled
Du säger att du reder ut att skala om 0-5V till 0-100, bra.
Att sen göra om 0-100 till tex. -25 - +75, är bara frågan om att subtrahera med 25.
Se bara till att variabeln du använder inte är av unsigned typ (en vanlig int fungerar bra), så kan processorn hantera negativa tal utmärkt.
Att sen göra om 0-100 till tex. -25 - +75, är bara frågan om att subtrahera med 25.
Se bara till att variabeln du använder inte är av unsigned typ (en vanlig int fungerar bra), så kan processorn hantera negativa tal utmärkt.
Re: Hjälp med kod Arduino - visa volt på oled
Jag tror däremot han vill använda området -25 till 100
I det fallet får råvärdet multipliceras med 125/1023 eller vad upplösningen nu var och sen subtrahera med 25.
I det fallet får råvärdet multipliceras med 125/1023 eller vad upplösningen nu var och sen subtrahera med 25.
- Klas-Kenny
- Inlägg: 11328
- Blev medlem: 17 maj 2010, 19:06:14
- Ort: Växjö/Alvesta
Re: Hjälp med kod Arduino - visa volt på oled
Ja.
Jag förutsatte att om han kan omvandla till 0-100, så fixar han även att omvandla till 0-125..
Jag förutsatte att om han kan omvandla till 0-100, så fixar han även att omvandla till 0-125..
Re: Hjälp med kod Arduino - visa volt på oled
Det finns även en färdig funktion för omvandlingen:
https://www.arduino.cc/reference/en/lan ... /math/map/
https://www.arduino.cc/reference/en/lan ... /math/map/
-
- Inlägg: 7809
- Blev medlem: 26 maj 2009, 12:20:37
- Ort: Kristinehamn
Re: Hjälp med kod Arduino - visa volt på oled
Det verkar ju som om han vill ha talet med decimaler. Map funkar väl bara för heltal.
Re: Hjälp med kod Arduino - visa volt på oled
Hmm, det har du nog rätt i SeniorLemuren.
Men å andra sidan, källkoden till map() är publicerad och det är enkelt att byta argument- och returtyp till float och skapa en egen funktion:
Men å andra sidan, källkoden till map() är publicerad och det är enkelt att byta argument- och returtyp till float och skapa en egen funktion:
Kod: Markera allt
long map(long x, long in_min, long in_max, long out_min, long out_max)
{
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}