Arduino/C skriva ut vissa ASCII från seriell till display?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Henry
Inlägg: 23624
Blev medlem: 20 april 2005, 02:52:47
Ort: Lund

Arduino/C skriva ut vissa ASCII från seriell till display?

Inlägg av Henry »

Trodde aldrig i mitt liv att jag en dag skulle ställa en fråga i denna del av forumet då jag har haft noll koll på detta med med programmering. Men i samband med att jag upptäckte Ardublock för ett antal dagar sedan (helt ok grafiskt program för kod) så gick det rätt snabbt att slänga ihop även lite avancerade grejer.

--

Ok, jag har en vakuummätare som man kommunicerar med genom det vanliga serieprotokollet medelst Tx och Rx och jag vill få vakuumnivån utskriven på en vanlig HD47800 display.


Hur jag får något skrivit på en display från serieporten som så vet jag i Ardublock såsom hyfsat i Arduino så allt ovan hade redan varit fixat om jag bara fått vakuumnivån som svar men nu är det förstås inte så enkelt.

När jag skickar ett fråga om vakuumnivån med @254PR3?;FF kan svaret från mätaren se ut tex så här:

@254ACK1.23E-5;FF representeras som @254ACKx.xxExx;FF.

Det som representerar x är det som jag vill ha skrivit på displayen och även E och . får nämnas men de är dock statiska, och inget annat från detta meddelande. Varje x är allt mellan 0 och 9 och tecknet efter E kan bli + eller -.


Hur jag då skall få in enbart dessa siffror på en display går jag bet på förmodligen för att jag inte känner till alla kommandon som finns och/eller att inte tex Ardublock klarar något sådant så som det är, för det känns också lite hämmat på ett sätt även om det klarar mycket.

Det enda jag skulle tänka mig ev kunna ha något med det hela att göra på något vis är string och/eller char då det har med tecken att göra och dessa block finns även i Ardublock men hur detta sedan i så fall kan användas för att lösa problemet ovan får jag ej ihop då ju dessa siffror ändrar sig i värde hela tiden.

Hade det gått att använda Ardublock för detta hade det varit perfekt men om ingen utom jag använt det här eller det absolut inte överhuvudtaget går så blir det väl kämpande i kod i stället.

Någon som ev kanske kan ge en liten knuff i rätt riktning hur detta kan göras? :)
Zkronk
Inlägg: 1423
Blev medlem: 23 augusti 2005, 16:44:36
Ort: Uppsala

Re: Arduino/C skriva ut vissa ASCII från seriell till displa

Inlägg av Zkronk »

Är det alltid samma antal tecken i hela textsträngen?
Hade man skrivit det i C så hade det nog varit enklast att stoppa in hela resultatet i en char-array, och sen skriva ut de tecknen genom dess index.
Ardublock har jag dock aldrig provat på och deras hemsida var inte så lätt att hitta information om vad för funktioner som finns att tillgå där.

Kod: Markera allt

char text[] = "@254ACKx.xxExx;FF";
int i;

lcd.print("Vakuum: ");

// Skriver ut innehållet på platserna x.xxExx
for(i = 7; i < 14; i++) {
        lcd.write(text[i]);
}
Användarvisningsbild
Henry
Inlägg: 23624
Blev medlem: 20 april 2005, 02:52:47
Ort: Lund

Re: Arduino/C skriva ut vissa ASCII från seriell till displa

Inlägg av Henry »

Ja det är alltid samma antal.

Så det går att göra på det viset att den liksom "räknar" inom ett visst spann med den funktionen. Det var bra att veta och ger enklare kodning än jag trodde för något sådant här och då öppnar det upp en hel del, i alla fall i Arduino om det skulle skita sig med Ardublock.

Om då exakt samma saker kan göras i Ardublock vet jag däremot ej då jag inte vet vad som kan skrivas i de olika delblocken då det ju är uppbyggt annorlunda med den delen än mot ren kod och det är, precis som för dig, rätt skralt med info om detta på nätet.

Jag kan inte heller pröva kod och se då en annan irriterande del med Ardublock är att man måste ha ett utvecklingskort som tex Mega inkopplad genom USB för att det skall bli någon kod i Arduino som det är kopplat till. Har ett på väg men det tar minst en vecka innan jag får det så tänkte fibbla med koden under tiden.


Det enda i Ardublock som finns som borde ha med detta att göra är en del av blocken i denna meny som tex char och string grejerna:
constants.jpg
Men om dessa kan användas för detta vet jag dock ej men får testa när kortet kommer sedan. Det finns som sagt inte heller någon direkt info om exakt vilka kommandon som finns vilket förstås sätter en del käppar i hjulen. Jag har dock förstått att det i stort uppbyggt är efter samma grund kommandon som i Arduino, men enbart med de block som finns i Ardublock men hade förstås varit bra att veta exakt.

Men nu har jag i alla fall något att gå efter, tackar för detta. :)
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

Re: Arduino/C skriva ut vissa ASCII från seriell till displa

Inlägg av Magnus_K »

Inget illa menat men var på väg att spilla ut kaffet när jag såg din tråd Henry. :D
Lycka till med labbandet och tycker du väljer rätt väg att försöka lösa ditt "problem"!
Användarvisningsbild
Henry
Inlägg: 23624
Blev medlem: 20 april 2005, 02:52:47
Ort: Lund

Re: Arduino/C skriva ut vissa ASCII från seriell till displa

Inlägg av Henry »

:lol:

Tackar, det är en intressant framtid som väntar. :) Jag tror nog det var allmänt känt på forumet att jag inte precis håller på och knackar kod om dagarna om man så säger så ingen som helst fara, men jag var illa tvungen att börja denna gång.


Håller på så smått med att sätta ihop ett väldigt kompakt vakuumsystem för en del labb grejs längre fram och det kommer då att bli många grejer som måste hållas koll på så inget går åt helvete och kostar massa pengar och tom kan bli farligt och allt grejer går inte att hålla koll på själv.

Det var först tänkt att vara mycket enklare som att om pin x går hög print meddelande xxxxx och sätt pin z hög och låg några ggr, vilket jag hade koll på hur det skulle göras i Ardublock och faktiskt även i Arduino då något sådant visade sig vara bra enklare än jag trodde.

Men vakuumätaren som jag tänkt använda till systemet visade sig den analoga utgången inte fungera vilken jag planerat att koppla till en typiskt kina multimeter display för att få ut vakuumnivån. Det gick ju dock att kommunicera seriellt med den och där fanns ju allt jag behövde och mer därtill så det fanns inte mycket till val men det visade sig även finnas många fördelar med det.

Bara det superba tipset hur jag kan fixa den seriella text biten öppnade upp många fler möjligheter som att jag då på displayen tex kunna sätta systemet till en viss vakuumnivå och så startar det upp och går dit automatiskt och håller sig där, och jag vet inte allt. :)
Skriv svar