s-meter

Projecten die niet passen in bovenstaande onderwerpen
Berichten: 1
Geregistreerd: 02 Sep 2014, 20:04

s-meter

Berichtdoor pd0nad » 02 Sep 2014, 20:08

kan iemand mijn hierbij helpen krijg steeds een fout melding

bij void writeMeter( int level, char label )

VrGr Cees






#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 7, 6);

void setup() {
// set up the LCD's number of columns and rows:
const int numRows = 2;
const int numCols = 16;


byte meter_s1[8] = {
B00000,
B00000,
B00000,
B00000,
B00000,
B00000,
B11000,
B11000
};
byte meter_s3[8] = {
B00000,
B00000,
B00000,
B00000,
B00000,
B00011,
B11011,
B11011
};
byte meter_s5[8] = {
B00000,
B00000,
B00000,
B00000,
B11000,
B11000,
B11000,
B11000,
};
byte meter_s7[8] = {
B00000,
B00000,
B00000,
B00011,
B11011,
B11011,
B11011,
B11011,
};
byte meter_s9[8] = {
B00000,
B00000,
B11000,
B11000,
B11000,
B11000,
B11000,
B11000,
};
byte meter_s10[8] = {
B00000,
B00011,
B11011,
B11011,
B11011,
B11011,
B11011,
B11011,
};
byte meter_s20[8] = {
B11000,
B11000,
B11000,
B11000,
B11000,
B11000,
B11000,
B11000,
};
byte meter_s30[8] = {
B11011,
B11011,
B11011,
B11011,
B11011,
B11011,
B11011,
B11011,
};

void writeMeter( int level, char label )
lcd.setCursor(0,0);
lcd.write( label );
lcd.setCursor(1,0);
lcd.write( ' ' );
lcd.setCursor(2,0);
lcd.write( ' ' );
lcd.setCursor(3,0);
lcd.write( ' ' );
lcd.setCursor(4,0);
lcd.write( ' ' );
lcd.setCursor(5,0);
lcd.write( ' ' ); switch( level ){
case 40: lcd.createChar(4, meter_s30); lcd.setCursor(5,0); lcd.write( 4 );
case 30: lcd.createChar(4, meter_s30);
case 20: if( level == 20 ) lcd.createChar(4, meter_s20); lcd.setCursor(4,0); lcd.write( 4 );
case 10: lcd.createChar(3, meter_s10);
case 9: if( level == 9 ) lcd.createChar(3, meter_s9); lcd.setCursor(3,0); lcd.write( 3 );
case 7: lcd.createChar(2, meter_s7);
case 5: if( level == 5 ) lcd.createChar(2, meter_s5); lcd.setCursor(2,0); lcd.write( 2 );
case 3: lcd.createChar(1, meter_s3);
case 1: if( level == 1 ) lcd.createChar(1, meter_s1); lcd.setCursor(1,0); lcd.write( 1 );
case 0:
default: break;
}
}

Advertisement

Berichten: 4079
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: s-meter

Berichtdoor shooter » 02 Sep 2014, 20:35

cpp code
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 7, 6);

void setup() {
// set up the LCD's number of columns and rows:
const int numRows = 2;
const int numCols = 16;


byte meter_s1[8] = {
B00000,
B00000,
B00000,
B00000,
B00000,
B00000,
B11000,
B11000
};
byte meter_s3[8] = {
B00000,
B00000,
B00000,
B00000,
B00000,
B00011,
B11011,
B11011
};
byte meter_s5[8] = {
B00000,
B00000,
B00000,
B00000,
B11000,
B11000,
B11000,
B11000,
};
byte meter_s7[8] = {
B00000,
B00000,
B00000,
B00011,
B11011,
B11011,
B11011,
B11011,
};
byte meter_s9[8] = {
B00000,
B00000,
B11000,
B11000,
B11000,
B11000,
B11000,
B11000,
};
byte meter_s10[8] = {
B00000,
B00011,
B11011,
B11011,
B11011,
B11011,
B11011,
B11011,
};
byte meter_s20[8] = {
B11000,
B11000,
B11000,
B11000,
B11000,
B11000,
B11000,
B11000,
};
byte meter_s30[8] = {
B11011,
B11011,
B11011,
B11011,
B11011,
B11011,
B11011,
B11011,
};
} // en hier ook om setup te eindigen
void writeMeter( int level, char label )
{ // hier miste een haakje
lcd.setCursor(0,0);
lcd.write( label );
lcd.setCursor(1,0);
lcd.write( ' ' );
lcd.setCursor(2,0);
lcd.write( ' ' );
lcd.setCursor(3,0);
lcd.write( ' ' );
lcd.setCursor(4,0);
lcd.write( ' ' );
lcd.setCursor(5,0);
lcd.write( ' ' );

switch( level ){
case 40: lcd.createChar(4, meter_s30); lcd.setCursor(5,0); lcd.write( 4 );
break; // horen hier geen breaks tussen?
case 30: lcd.createChar(4, meter_s30);
case 20: if( level == 20 ) lcd.createChar(4, meter_s20); lcd.setCursor(4,0); lcd.write( 4 );
case 10: lcd.createChar(3, meter_s10);
case 9: if( level == 9 ) lcd.createChar(3, meter_s9); lcd.setCursor(3,0); lcd.write( 3 );
case 7: lcd.createChar(2, meter_s7);
case 5: if( level == 5 ) lcd.createChar(2, meter_s5); lcd.setCursor(2,0); lcd.write( 2 );
case 3: lcd.createChar(1, meter_s3);
case 1: if( level == 1 ) lcd.createChar(1, meter_s1); lcd.setCursor(1,0); lcd.write( 1 );
case 0:
default: break;
}
}
void loop() // en ik miste de loop

{
writeMeter.....


}probeer ook eens auto format die waarschuwt je voor dit soort fouten, en het levert ook nog een mooie file met inspriningen op.
paul deelen
shooter@home.nl

Berichten: 4079
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: s-meter

Berichtdoor shooter » 03 Sep 2014, 19:00

cpp code
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 7, 6);
byte meter_s1[8] = {
B00000,
B00000,
B00000,
B00000,
B00000,
B00000,
B11000,
B11000
};
byte meter_s3[8] = {
B00000,
B00000,
B00000,
B00000,
B00000,
B00011,
B11011,
B11011
};
byte meter_s5[8] = {
B00000,
B00000,
B00000,
B00000,
B11000,
B11000,
B11000,
B11000,
};
byte meter_s7[8] = {
B00000,
B00000,
B00000,
B00011,
B11011,
B11011,
B11011,
B11011,
};
byte meter_s9[8] = {
B00000,
B00000,
B11000,
B11000,
B11000,
B11000,
B11000,
B11000,
};
byte meter_s10[8] = {
B00000,
B00011,
B11011,
B11011,
B11011,
B11011,
B11011,
B11011,
};
byte meter_s20[8] = {
B11000,
B11000,
B11000,
B11000,
B11000,
B11000,
B11000,
B11000,
};
byte meter_s30[8] = {
B11011,
B11011,
B11011,
B11011,
B11011,
B11011,
B11011,
B11011,
};
void setup() {
// set up the LCD's number of columns and rows:
const int numRows = 2;
const int numCols = 16;



} // en hier ook om setup te eindigen

void writeMeter( int level, char label )
{ // hier miste een haakje
lcd.setCursor(0,0);
lcd.write( label );
lcd.setCursor(1,0);
lcd.write( ' ' );
lcd.setCursor(2,0);
lcd.write( ' ' );
lcd.setCursor(3,0);
lcd.write( ' ' );
lcd.setCursor(4,0);
lcd.write( ' ' );
lcd.setCursor(5,0);
lcd.write( ' ' );

switch( level ){
case 40: lcd.createChar(4, meter_s30); lcd.setCursor(5,0); lcd.write( 4 );
break; // horen hier geen breaks tussen?
case 30: lcd.createChar(4, meter_s30);
case 20: if( level == 20 ) lcd.createChar(4, meter_s20); lcd.setCursor(4,0); lcd.write( 4 );
case 10: lcd.createChar(3, meter_s10);
case 9: if( level == 9 ) lcd.createChar(3, meter_s9); lcd.setCursor(3,0); lcd.write( 3 );
case 7: lcd.createChar(2, meter_s7);
case 5: if( level == 5 ) lcd.createChar(2, meter_s5); lcd.setCursor(2,0); lcd.write( 2 );
case 3: lcd.createChar(1, meter_s3);
case 1: if( level == 1 ) lcd.createChar(1, meter_s1); lcd.setCursor(1,0); lcd.write( 1 );
case 0:
default: break;
}
}
void loop()
{Writemeter (1,"A"}
// en ik miste de loop

je programma is dus nog niet af je zult die writemeter ergens aan moeten roepen.


zo ik heb de declaraties van de bytes uit de setup gehaald, en nu kun je ze overal gebruiken.
als je ze ergens declareert dan werken ze alleen maar in die subroutine.
paul deelen
shooter@home.nl

Terug naar Overige projecten

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 12 gasten