Go Down

Topic: Display 20 x 4 I2C errore "POSITIVE" (Read 250 times) previous topic - next topic

Sdreoos

Ciao sto provando questo sketch trovato sul web che mi servirà per un progetto ma genera un errore in particolare : error: 'POSITIVE' was not declared in this scope
Mi sembra che la libreria sia collocata correttamente ma non funziona (?!)
Qualcuno può darmi un suggerimento?
Grazie
Code: [Select]
#include <Wire.h>  // Libreria di sistema - E' richiesta da I2CIO.cpp
#include <LiquidCrystal_I2C.h> // Libreria LCD I2C
// Imposta i pin usati sul chip I2C per le connessioni
// con il display LCD: addr, en, rw ,rs ,d4 ,d5 ,d6 ,d7 ,bl ,blpol
// ed inoltre pone l'indirizzo del display a 0x27
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

char *players[]={
"J",
"M",
"B",
"R",
"N",
"S",
"C",
};

long player;

int val1 = 0;
int BUTTON1 = 13;

void setup() {
  lcd.begin(20, 4);
  pinMode(BUTTON1, INPUT);
}

void loop() {
  lcd.setCursor(0,1);
  lcd.print(millis() / 1000);
  val1 = digitalRead(BUTTON1);
  unsigned long seed=seedOut(50);
  randomSeed(seed);
  if (val1 == HIGH) {
    for (int i=0;i<1;++i) {
      player = (random(sizeof(players)/sizeof(char*)));
      lcd.setCursor(0, 0);
      lcd.print(players[player]);
      delay(5000);
      lcd.clear();
    }
  }
  else
  {
    return;
  }
}

unsigned int bitOut(void) {
  static unsigned long firstTime=1, prev=0;
  unsigned long bit1=0, bit0=0, x=0, port=0, limit=10;
  if (firstTime) {
    firstTime=0;
    prev=analogRead(port);
  }
  while (limit--) {
    x=analogRead(port);
    bit1=(prev!=x?1:0);
    prev=x;
    x=analogRead(port);
    bit0=(prev!=x?1:0);
    prev=x;
    if (bit1!=bit0)
      break;
  }
  return bit1;
}

unsigned long seedOut(unsigned int noOfBits) {
  unsigned long seed=0;
  for (int i=0;i<noOfBits;++i)
    seed = (seed<<1) | bitOut();
  return seed;
}

SukkoPera

Usa la LiquidCrystal di F. Malpartida.
"Code is read much more often than it is written, so plan accordingly. Design for readability."

Guida rapida a ESP8266: https://goo.gl/kzh62E

steve-cr

Usa la LiquidCrystal di F. Malpartida.
Anche io ti consiglio VIVAMENTE di usare un'altro Liquid Crystal: uso quella di TESTATO ed è perfetta!
Samantha Cristoforetti: "Mi fai fare un giro sul tuo ultraleggero?". "Certamente, però piloto io !"

gpb01

#3
Nov 20, 2018, 04:02 pm Last Edit: Nov 20, 2018, 04:02 pm by gpb01
Anche io ti consiglio VIVAMENTE di usare un'altro Liquid Crystal: uso quella di TESTATO ed è perfetta!
Concordo, eccola in allegato ... :)

Guglielmo
Search is Your friend ... or I am Your enemy !

Sdreoos

Grazie a tutti :) Stamattina ho caricato la libreria ma continua a darmi questo errore:

error: 'POSITIVE' was not declared in this scope
Errore durante la compilazione

La vecchia devo cancellarla forse?

Giuseppe

gpb01

Devi studiare gli esempi allegati ed adattare il programma come vedi fatto negli esempi.

Guglielmo
Search is Your friend ... or I am Your enemy !

steve-cr

Grazie a tutti :) Stamattina ho caricato la libreria ma continua a darmi questo errore:

error: 'POSITIVE' was not declared in this scope
Errore durante la compilazione

La vecchia devo cancellarla forse?

Giuseppe
Con la libreira di TESTATO che ti ha allegato Guglielmo non devi scrivere tutte quelle cose che hai scritto.

solo queste cose:

Code: [Select]
#include <PCF8574_HD44780_I2C.h>       // Display Library

PCF8574_HD44780_I2C lcd(0x27, 20, 4); // set the LCD address (indirizzo, colonne, righe)



e nel void setup () inizializzarlo così:

Code: [Select]
 // Init LCD
  lcd.backlight (); // solo se vuoi accendere la retroilluminazione
  lcd.init ();


La vecchia libreria va sicuramente cancellata.
Samantha Cristoforetti: "Mi fai fare un giro sul tuo ultraleggero?". "Certamente, però piloto io !"

Go Up