Pages: [1]   Go Down
Author Topic: "invalid conversion from 'CHAR' to 'long int'  (Read 645 times)
0 Members and 1 Guest are viewing this topic.
Campagne Aretine
Offline Offline
God Member
*****
Karma: 0
Posts: 816
Arduino è una figata
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Dato che non sono un buon programmatore non capisco sto tipo di errore.
Code:
#include <LiquidCrystal.h>

int sensorPin = 0;
int sensorValue = 0;
const int numRows = 2;
const int numCols = 16;
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);

void setup()
{
     lcd.begin(numRows, numCols);
}

void loop()
{
   sensorValue = analogRead(sensorPin);
   int thisCol = 0;
   int thisRow = 0;
   lcd.setCursor(thisCol,thisRow);
   lcd.print("SensorValue = ", sensorValue);
   delay(sensorValue)
}

Il codice è questo. Il motivo, secondo me, è valore del sensore è un numero ma sul display posso scrivere solo char, quindi boh...  Oppure l'arduino acquisisce il valore come un char ma la cose mi pare abbastanza assurda  ;D

PS ho provato sia la conversione implicita che esplicita da int a char ma niente :S
« Last Edit: January 21, 2010, 06:30:44 am by Calamaro » Logged

Forum Administrator
Offline Offline
Newbie
*****
Karma: 3
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao

lcd.print() accetta un solo parametro
perciò devi spezzare quella linea in due
una che stampa la stringa
e una che stampa il numero

è una palla ma fa risparmiare molta memoria

m
Logged

Campagne Aretine
Offline Offline
God Member
*****
Karma: 0
Posts: 816
Arduino è una figata
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
#include <LiquidCrystal.h>

int sensorPin = 0;
int sensorValue = 0;
const int numRows = 2;
const int numCols = 16;
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);

void setup()
{
     lcd.begin(numRows, numCols);
}

void loop()
{
   sensorValue = analogRead(sensorPin);
   int thisCol = 0;
   int thisRow = 0;
   lcd.setCursor(thisCol,thisRow);
   lcd.print("SensorValue = ");
   thisRow = 1;
   lcd.setCursor(thisCol,thisRow);
   lcd.print(sensorValue);
   delay(100);
}

codice modificato

ma il valore del sensore è sempre 1023 e non capisco come mai... anche girando il potenziometro :S

EDIT

il potenziometro non era alimentato,  :-[
« Last Edit: January 21, 2010, 07:21:29 am by Calamaro » Logged

Pages: [1]   Go Up
Jump to: