This is the error message
Arduino: 1.8.5 (Windows 10), Board: "Arduino/Genuino Uno"
morse_with_lcd:8: error: 'NEGATIVE' was not declared in this scope
LiquidCrystal_I2C lcd(I2C_ADDR, 2, 1, 0, 4, 5, 6, 7, 3, NEGATIVE);
^
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:16:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
};
^
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:16:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:16:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:16:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:16:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:16:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:16:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:16:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:16:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:16:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:16:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:16:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:16:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:16:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:16:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:16:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:16:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:16:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:16:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:16:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:16:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:16:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:16:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:16:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:16:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:16:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:20:19: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
}; // numbers 0-9
^
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:20:19: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:20:19: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:20:19: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:20:19: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:20:19: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:20:19: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:20:19: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:20:19: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:20:19: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino: In function 'void flashSequence(char*)':
C:\Users\ASUS\Documents\Arduino\morse_with_lcd\morse_with_lcd.ino:71:25: warning: NULL used in arithmetic [-Wpointer-arith]
while (sequence[i] != NULL)
^
exit status 1
'NEGATIVE' was not declared in this scope
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
now here is the actual code
#include <Wire.h> //libraries of the LCD with I2C
#include <LiquidCrystal.h>
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27 // Define the address of the serial communication display
#define LED_OFF 0
#define LED_ON 1
LiquidCrystal_I2C lcd(I2C_ADDR, 2, 1, 0, 4, 5, 6, 7, 3, NEGATIVE);
int ledPin = 8;
char* letters[] = {
".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", // letters A-I
".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", // letters J-R
"...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.." //letters S-Z
};
char* numbers[] = {"-----", ".----", "..---", "...--", "....-", ".....", "-....",
"--...", "---..", "----."
}; // numbers 0-9
int dotDelay = 200; //Dot time
void setup()
{
lcd.begin(16, 2); //Initialize the display
lcd.setBacklight(LED_OFF);
lcd.cursor();
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop()
{
char ch;
if (Serial.available()) // is there anything to be read from USB?
{
ch = Serial.read(); // read a single letter
if (ch >= 'a' && ch <= 'z')
{
flashSequence(letters[ch - 'a']);
lcd.write(ch);
delay(1500);
}
else if (ch >= 'A' && ch <= 'Z')
{
flashSequence(letters[ch - 'A']);
lcd.write(ch);
delay(1500);
}
else if (ch >= '0' && ch <= '9')
{
flashSequence(numbers[ch - '0']);
lcd.write(ch);
delay(1500);
}
else if (ch == ' ')
{
delay(dotDelay * 4); // gap between words
lcd.write(ch);
delay(1500);
}
}
}
void flashSequence(char* sequence)
{
int i = 0;
while (sequence[i] != NULL)
{
flashDotOrDash(sequence[i]);
i++;
}
delay(dotDelay * 3); // gap between letters
}
void flashDotOrDash(char dotOrDash)
{
digitalWrite(ledPin, HIGH);
if (dotOrDash == '.')
{
delay(dotDelay);
}
else // must be a -
{
delay(dotDelay * 3);
}
digitalWrite(ledPin, LOW);
delay(dotDelay); // gap between flashes
}