Arduino Forum

International => Italiano => Software => Topic started by: Sdreoos on Nov 20, 2018, 12:33 pm

Title: Display 20 x 4 I2C errore "POSITIVE"
Post by: Sdreoos on Nov 20, 2018, 12:33 pm
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;
}
Title: Re: Display 20 x 4 I2C errore "POSITIVE"
Post by: SukkoPera on Nov 20, 2018, 12:40 pm
Usa la LiquidCrystal di F. Malpartida.
Title: Re: Display 20 x 4 I2C errore "POSITIVE"
Post by: steve-cr on Nov 20, 2018, 03:58 pm
Usa la LiquidCrystal di F. Malpartida.
Anche io ti consiglio VIVAMENTE di usare un'altro Liquid Crystal: uso quella di TESTATO ed è perfetta!
Title: Re: Display 20 x 4 I2C errore "POSITIVE"
Post by: gpb01 on Nov 20, 2018, 04:02 pm
Anche io ti consiglio VIVAMENTE di usare un'altro Liquid Crystal: uso quella di TESTATO ed è perfetta!
Concordo, eccola in allegato ... :)

Guglielmo
Title: Re: Display 20 x 4 I2C errore "POSITIVE"
Post by: Sdreoos on Nov 21, 2018, 12:59 pm
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
Title: Re: Display 20 x 4 I2C errore "POSITIVE"
Post by: gpb01 on Nov 21, 2018, 01:18 pm
Devi studiare gli esempi allegati ed adattare il programma come vedi fatto negli esempi.

Guglielmo
Title: Re: Display 20 x 4 I2C errore "POSITIVE"
Post by: steve-cr on Nov 22, 2018, 01:22 pm
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.