Volt Ampmeter

Projecten die niet passen in bovenstaande onderwerpen
Berichten: 2
Geregistreerd: 31 Mei 2012, 23:22

Volt Ampmeter

Berichtdoor PieTronics » 31 Mei 2012, 23:42

Hallo Allemaal,

Ik heb een Arduino Mega 2560 en de Seeed Studio 2.8" TFT Touch Shield
van dit setje wil ik een uitgebreide volt/amp meter maken.
Dit had ik al gemaakt met de ArduinoUno met een 2x16 display, dat was geen probleem.
Met het nieuwe setje ben ik net begonnen, ik zal de code erbij zetten.
Het scherm laat alles zien, alleen de waarde die hij binnenkrijgt laat hij op het scherm zien als een ? teken.
In de seriele-monitor laat hij het wel zien.
Ik denk dat de aansturing naar het display niet goed gaat.
Weet iemand een oplossing.
Bedankt alvast.

Hier de Code:

#include <stdint.h>
#include <TouchScreen.h>
#include <TFT.h>

#ifdef MEGA
#define YP A2 // must be an analog pin, use "An" notation!
#define XM A1 // must be an analog pin, use "An" notation!
#define YM 14 // can be a digital pin, this is A0
#define XP 17 // can be a digital pin, this is A3
#endif

#ifdef MEGA
#define YP A2 // must be an analog pin, use "An" notation!
#define XM A1 // must be an analog pin, use "An" notation!
#define YM 54 // can be a digital pin, this is A0
#define XP 57 // can be a digital pin, this is A3
#endif

void setup()
{
Serial.begin(115200);
Tft.init(); //init TFT library

/* Demo of
drawRectangle(unsigned int poX, unsigned int poY, unsigned int length,unsigned int width,unsigned int color);
fillRectangle(unsigned int poX, unsigned int poY, unsigned int length, unsigned int width, unsigned int color);
*/
Tft.setDisplayDirect(DOWN2UP);
Tft.fillRectangle(5, 315, 40,313,BLUE);
Tft.drawString("1",17,310,2,WHITE);

Tft.drawString("V",17,165,2,WHITE);

Tft.drawString("A",17,20,2,WHITE);


Tft.drawRectangle(53, 3, 40,313,BLUE);
Tft.drawString("2",67,310,2,WHITE);
Tft.drawRectangle(103, 3, 40,313,BLUE);
Tft.drawString("3",117,310,2,WHITE);
Tft.drawRectangle(153, 3, 40,313,BLUE);
Tft.drawString("4",167,310,2,WHITE);

//Tft.drawRectangle(30, 160, 60, 60,RED);
}

void loop()
{

int sensorValue = analogRead(A8);
float voltage_string = sensorValue * (5.0 / 1023.0);
char inChar=voltage_string;
Tft.drawChar(inChar,17,250,2,WHITE);
Serial.println(voltage_string);
}

Advertisement

Gebruikers-avatar
Berichten: 116
Geregistreerd: 23 Dec 2011, 00:11
Woonplaats: Enschede

Re: Volt Ampmeter

Berichtdoor bigred » 01 Jun 2012, 07:43

Bij deze verplaatst naar overige projecten.

Berichten: 1
Geregistreerd: 10 Sep 2012, 14:16

Re: Volt Ampmeter

Berichtdoor eagleman » 10 Sep 2012, 15:28

Hallo,
ben een leek op het gebied van arduino maar you project spreekt mij wel aan.
zou graag in contact willen komen
greetz

Berichten: 2
Geregistreerd: 31 Mei 2012, 23:22

Re: Volt Ampmeter

Berichtdoor PieTronics » 11 Sep 2012, 22:16

Hallo,

In contact komen kan altijd, je kan een mail sturen naar:

grt

Piet
Laatst gewijzigd door PieTronics op 08 Okt 2012, 22:19, in totaal 1 keer gewijzigd.

Gebruikers-avatar
Berichten: 3
Geregistreerd: 07 Jan 2012, 17:29

Re: Volt Ampmeter

Berichtdoor themast » 08 Okt 2012, 21:41

volgens mij zit er een foutje in de code als ik heb upload naar mijn arduino komt er alleen een vraag teken op de plaat waar de analoge waarde moet staan.

Ik heb hem iets aangepast maar nu word de waarde niet ververst waardoor het display volloopt heeft iemand hiervoor een idee

#include <stdint.h>
#include <TouchScreen.h>
#include <TFT.h>

#ifdef SEEEDUINO
#define YP A2 // must be an analog pin, use "An" notation!
#define XM A1 // must be an analog pin, use "An" notation!
#define YM 14 // can be a digital pin, this is A0
#define XP 17 // can be a digital pin, this is A3
#endif

char string[10];

void setup()
{
Serial.begin(115200);
Tft.init(); //init TFT library

/* Demo of
drawRectangle(unsigned int poX, unsigned int poY, unsigned int length,unsigned int width,unsigned int color);
fillRectangle(unsigned int poX, unsigned int poY, unsigned int length, unsigned int width, unsigned int color);
*/
Tft.setDisplayDirect(DOWN2UP);
Tft.fillRectangle(5, 315, 40,313,BLUE);
Tft.drawString("1",17,310,2,WHITE);

Tft.drawString("V",17,165,2,WHITE);

Tft.drawString("A",17,20,2,WHITE);


Tft.drawRectangle(53, 3, 40,313,BLUE);
Tft.drawString("2",67,310,2,WHITE);
Tft.drawRectangle(103, 3, 40,313,BLUE);
Tft.drawString("3",117,310,2,WHITE);
Tft.drawRectangle(153, 3, 40,313,BLUE);
Tft.drawString("4",167,310,2,WHITE);

//Tft.drawRectangle(30, 160, 60, 60,RED);
}

void loop()
{

int sensorValue = analogRead(A4);
float voltage_string = sensorValue * (5.0 / 1023.0);

Tft.drawString(itoa(sensorValue,string,10),15,220,2,WHITE);

Serial.println(voltage_string);
}

Berichten: 6
Geregistreerd: 31 Aug 2012, 22:43

Re: Volt Ampmeter

Berichtdoor MarioV » 15 Okt 2012, 18:54

Hoi,

Volgens mij zit je probleem bij itoa. Deze functie zet een INTEGER om naar een STRING en je probeert een FLOAT om te zetten.
Zelf doe ik dat met volgende functie:
dtostrf(USpanning[1],5, 2, dtostrfbuffer); // spanning accu bestaande uit 5 digits waarvan 2 achter de komma

grtn

Gebruikers-avatar
Berichten: 188
Geregistreerd: 23 Dec 2011, 00:12

Re: Volt Ampmeter

Berichtdoor Duality » 15 Okt 2012, 22:20

als je code plaats, kun je er code tags omheen zetten :)
Code: Alles selecteren
[code][/code]

maakt het iets makkelijker te lezen, ook als je je code goed indent (niet noodzakelijk voor werking) maar maakt het ook weer wat leesbaarder :)

Code: Alles selecteren
#include <stdio.h>
int main(){

   void setup(){
   }

   void loop(){
      int x = 1;

      if(x<2){
         doStuf();
      }
      else{
         doMoreStuf();
      }
   }
}


de } staat onder de "code block" functie header, maakt het duidelijker waar code bij hoort zoals, int x; hoort binnen void loop() functie body (alles binnen {} is de body genaamt), omdat het tenopzichte van de } die bij void loop(){} hoort en ten opzichte van void loop zelf ingedent is :)

maar goed, ik dwing niemand om zo code te schrijven, het is maar net hoe je het wil doen :)
er zijn uiteraad nog veeele andere manier om syntax op te stellen, maar ja ik denk dat dit te veel offtopic gaat :)
meschien maar een topic voor aanmaken :)

Terug naar Overige projecten

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 10 gasten