Hello all,
First, totally new to this, and I am having an issue. Here is what I have Arduino/Genuino UNO, Digital Can-Bus Shield, D1 Robot LCD KeyPad Shield (6 button). At this point why I had assembled these units doesn't matter, because I have now moved on to just trying to get the LCD to work or any of it for that matter. Here is the code that I was currently trying to run
//Sample using LiquidCrystal library
#include <LiquidCrystal.h>
/*******************************************************
This program will test the LCD panel and the buttons
Mark Bramwell, July 2010
********************************************************/
// select the pins used on the LCD panel
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
// define some values used by the panel and buttons
int lcd_key = 0;
int adc_key_in = 0;
#define btnRIGHT 0
#define btnUP 1
#define btnDOWN 2
#define btnLEFT 3
#define btnSELECT 4
#define btnNONE 5
// read the buttons
int read_LCD_buttons()
{
adc_key_in = analogRead(0); // read the value from the sensor
// my buttons when read are centered at these valies: 0, 144, 329, 504, 741
// we add approx 50 to those values and check to see if we are close
if (adc_key_in > 1000) return btnNONE; // We make this the 1st option for speed reasons since it will be the most likely result
// For V1.1 us this threshold
if (adc_key_in < 50) return btnRIGHT;
if (adc_key_in < 250) return btnUP;
if (adc_key_in < 450) return btnDOWN;
if (adc_key_in < 650) return btnLEFT;
if (adc_key_in < 850) return btnSELECT;
// For V1.0 comment the other threshold and use the one below:
/*
if (adc_key_in < 50) return btnRIGHT;
if (adc_key_in < 195) return btnUP;
if (adc_key_in < 380) return btnDOWN;
if (adc_key_in < 555) return btnLEFT;
if (adc_key_in < 790) return btnSELECT;
*/
return btnNONE; // when all others fail, return this...
}
void setup()
{
lcd.begin(16, 2); // start the library
lcd.setCursor(0,0);
lcd.print("Push the buttons"); // print a simple message
}
void loop()
{
lcd.setCursor(9,1); // move cursor to second line "1" and 9 spaces over
lcd.print(millis()/1000); // display seconds elapsed since power-up
lcd.setCursor(0,1); // move to the begining of the second line
lcd_key = read_LCD_buttons(); // read the buttons
switch (lcd_key) // depending on which button was pushed, we perform an action
{
case btnRIGHT:
{
lcd.print("RIGHT ");
break;
}
case btnLEFT:
{
lcd.print("LEFT ");
break;
}
case btnUP:
{
lcd.print("UP ");
break;
}
case btnDOWN:
{
lcd.print("DOWN ");
break;
}
case btnSELECT:
{
lcd.print("SELECT");
break;
}
case btnNONE:
{
lcd.print("NONE ");
break;
}
}
}
And here is the error that I am getting (I get this Wire/Wire.h code with almost everything I try to download:
Arduino: 1.8.5 (Windows 10), Board: "Arduino/Genuino Uno"
C:\Users\user\Documents\Arduino\libraries\LiquidCrystal\I2CIO.cpp:35:26: fatal error: ../Wire/Wire.h: No such file or directory
#include <../Wire/Wire.h>
^
compilation terminated.
Multiple libraries were found for "LiquidCrystal.h"
Used: C:\Users\user\Documents\Arduino\libraries\LiquidCrystal
Not used: C:\Users\user\Documents\Arduino\libraries\LiquidCrystal.DonotUse.ignoreWarning
Not used: C:\Program Files (x86)\Arduino\libraries\LiquidCrystal
exit status 1
Error compiling for board Arduino/Genuino Uno.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
Eventually I would like to run the following code, as it was the reason for starting this project:
#include <SPI.h>
#include <can.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Defines for setting up the CAN Bus
#define mode NORMAL // define CAN mode
#define bitrate 250 // define CAN speed (bitrate)
MCP CAN1 (10); //Create CAN Channel
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Set the LCD I2C address
unsigned int last_vane_position = 40;
unsigned int DesiredPosition;
unsigned int vane_position;
int VanePos = 0;
void setup() {
// Initialize Serial communications with computer to use serial monitor
Serial.begin(115200);
lcd.begin(20, 4); // initialize the lcd for 20 chars 4 lines and turn on backlight
// Set CAN mode and speed
CAN1.begin(NORMAL, bitrate);
lcd.setCursor(0, 0);
lcd.print("CM^2 = ");
}
void loop(){
if(DesiredPosition > 800){
DesiredPosition = 100;
}
else{ DesiredPosition += 1;}
// Set the Turbo Position
SendTurboPosition( DesiredPosition );
// Delay for Processor
delay(5);
VanePos = constrain(map(DesiredPosition,40,960,3,25), 3, 25);
String TurboPos = String(String(VanePos, DEC) + " ");
lcd.setCursor(6, 0);
lcd.print(TurboPos);
}
void SendTurboPosition( int TurboPosition )
{
last_vane_position = DesiredPosition;
int FinalPosition = map( TurboPosition, 0, 1023, 960, 40 );
byte lobyte = lowByte(FinalPosition);
byte hibyte = highByte(FinalPosition);
unsigned long ID = 0x0CFFC600; // Random Extended Message ID
byte length = 8; // Data length
byte data[] = { lobyte, hibyte, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }; // data message with an added counter
CAN1.send ( ID, extID, length, data ); // Load message and send
}
Any guidance or help would greatly be appreciated. Thanks to anyone in advance!! Gerry D