I have been creating a device to control my car with voice and bluetooth, but I have all my Movi code commented out anytime I uncomment and upload it the code hangs up and my serial console no longer works.
`#include <MOVIShield.h>
#include “Arduino.h”
//Serial Read
const byte numchars = 50;
char character[numchars];
char tempcharacter[numchars]; //used to temporarily store the character array
char pc[numchars] = {0};
boolean newdata = false;
int red;
int green;
int blue;
//compare variables
MOVI camaro(true); //Voice recognition module
//interior RGB lights
#define RedI 2
#define GreenI 3
#define BlueI 4
//exterior RGB lights(UnderBody)
#define RedE 5
#define GreenE 6
#define BlueE 7
//Halo RGB lights
#define RedH 8
#define GreenH 9
#define BlueH 10
//RGB lights Voltage
#define voltage 11
//Arduino Body Control Module
#define Horn 22
#define Headlights 23
#define clutch 24
#define amp 25
#define Accessory 26
#define Ignition 27
#define RUN 28
#define osunroof 29
#define csunroof 30
#define Driver_up 31
#define Driver_down 32
#define Pass_up 33
#define Pass_down 34
#define trunk 35
#define lock 42
#define unlock 43
#define brake 44
#define reset 45
#define outmicrophone 46
#define outspeaker 47
#define rQuit 52
int tdm = 0;
char rgb[][100] = {“Horn”, “Remote Start”, “Headlights”, “Accessory”, “Trunk”, “Open sunroof”, “Close sunroof”,
“Dwindow up”, “Dwindow down”, “Pwindow up”, “Pwindow down”, “Lock”,
“Unlock”, “all lights”, “Fades”, “Strobe”, “Halos”, “Underbody Lights”,
“Interior Lights”
};
int i = 0;
int result = 0;
int red1;
int green1;
int blue1;
int red2;
int green2;
int blue2;
String color;
String ans;
void Reset() {
digitalWrite(reset, HIGH);
Serial.println(“Arduino Resetting”);
delay(200);
digitalWrite(reset, LOW);
}
void string(String n, String p) {
int mtech = n.indexOf§;
}
void allrgbon() {
if (analogRead(voltage) == LOW) {
analogWrite(RedE, 255);
analogWrite(GreenE, 255);
analogWrite(BlueE, 255);
analogWrite(RedI, 255);
analogWrite(GreenI, 255);
analogWrite(BlueI, 255);
analogWrite(RedH, 255);
analogWrite(BlueH, 255);
analogWrite(GreenH, 255);
analogWrite(voltage, 255);
} else {
allrgboff();
}
}
void allrgboff() {
analogWrite(RedE, 0);
analogWrite(GreenE, 0);
analogWrite(BlueE, 0);
analogWrite(RedI, 0);
analogWrite(GreenI, 0);
analogWrite(BlueI, 0);
analogWrite(RedH, 0);
analogWrite(BlueH, 0);
analogWrite(GreenH, 0);
analogWrite(voltage, 0);
}
void unLighton() {
analogWrite(RedE, 255);
analogWrite(GreenE, 255);
analogWrite(BlueE, 255);
}
void inLighton() {
analogWrite(RedI, 255);
analogWrite(GreenI, 255);
analogWrite(BlueI, 255);
}
void HLighton() {
analogWrite(RedH, 255);
analogWrite(BlueH, 255);
analogWrite(GreenH, 255);
}
void BCM(int t) {
switch (t) {
//Case for horn
case 0:
Horns();
break;
//Case for remote start
case 1:
Remote_start();
break;
//Case for Headlights
case 2:
Headlight();
break;
//Case for accessory power
case 3:
Accessory_power();
break;
//case for Trunk
case 6:
Trunk();
break;
//Case for open Sun roof
case 7:
Sunroofopen();
break;
//Case for close sun roof
case 8:
Sunroofclose();
break;
//Case for open driver window
case 9:
Driver_windowup();
break;
//Case for down Driver Window
case 10:
Driver_windowdown();
break;
//Case to up passenger window
case 11:
Passenger_windowup();
break;
//Case to down passenger window
case 12:
Passenger_windowdown();
break;
//Case to lock doors
case 13:
Lock_doors();
break;
//Case to unlock doors
case 14:
Unlock_Doors();
break;
case 15:
allrgbon();
break;
case 16:
//fades();
break;
case 17:
strobe();
break;
case 18:
SetHalo(red, green, blue);
break;
case 19:
red = red1;
green = green1;
blue = blue1;
SetExterior(red1, green1, blue1);
break;
case 20:
red = red2;
green = green2;
blue = blue2;
SetInterior(red2, green2, blue2);
break;
}
}
void SetHalo(int r, int g, int b) {
r = constrain(r, 0, 255);
g = constrain(g, 0, 255);
b = constrain(b, 0, 255);
analogWrite(RedH, r);
analogWrite(GreenH, g);
analogWrite(BlueH, b);
}
void SetExterior(int r, int g, int b) {
r = constrain(r, 0, 255);
g = constrain(g, 0, 255);
b = constrain(b, 0, 255);
analogWrite(RedE, r);
analogWrite(GreenE, g);
analogWrite(BlueE, b);
}
void SetInterior(int r, int g, int b) {
r = constrain(r, 0, 255);
g = constrain(g, 0, 255);
b = constrain(b, 0, 255);
analogWrite(RedI, r);
analogWrite(GreenI, g);
analogWrite(BlueI, b);
}
void strobe() {
if (digitalRead(voltage) == 255) {
allrgboff();
} else {
int time = 1000;
int s = 1;
analogWrite(voltage, 255);
while (s == 1) {
int red_ran = random(255);
int blue_ran = random(255);
int green_ran = random(255);
analogWrite(RedE, red_ran), analogWrite(BlueE, blue_ran), analogWrite(
GreenE, green_ran), analogWrite(RedH, red_ran), analogWrite(
BlueH, blue_ran), analogWrite(GreenH, green_ran), analogWrite(
RedI, red_ran), analogWrite(BlueI, blue_ran), analogWrite(
GreenI, green_ran), delay(time);
}
}
}
void Remote_start() {
if (digitalRead(RUN) == LOW) {
digitalWrite(clutch, LOW);
digitalWrite(Accessory, HIGH);
digitalWrite(RUN, HIGH);
delay(3000);
digitalWrite(Accessory, LOW);
digitalWrite(RUN, LOW);
delay(500);
digitalWrite(Ignition, LOW);
delay(500);
digitalWrite(clutch, HIGH);
digitalWrite(Ignition, HIGH);
digitalWrite(rQuit, HIGH);
if (digitalRead(brake) == HIGH) {
digitalWrite(RUN, HIGH);
digitalWrite(Accessory, HIGH);
digitalWrite(rQuit, LOW);
}
}
}
void Turn_off() {
digitalWrite(RUN, HIGH);
digitalWrite(Accessory, HIGH);
}
void Police_Mode() {
int R;
int B;
int G;
int flash = 200;
int t = 1;
while (t == 1) {
analogWrite(RedE, 0);
analogWrite(GreenE, 0);
analogWrite(BlueE, 255);
delay(flash);
analogWrite(RedE, 255);
analogWrite(GreenE, 0);
analogWrite(BlueE, 0);
}
}
void Sync_RGBE(unsigned int red, unsigned int green, unsigned int blue) {
analogWrite(RedE, red);
analogWrite(GreenE, green);
analogWrite(BlueE, blue);
}
void Sync_RGBI(unsigned int red, unsigned int green, unsigned int blue) {
analogWrite(RedI, red);
analogWrite(GreenI, green);
analogWrite(BlueI, blue);
}
void Sync_RGBH(unsigned int red, unsigned int green, unsigned int blue) {
analogWrite(RedH, red);
analogWrite(GreenH, green);
analogWrite(BlueH, blue);
}
void flashRGB() {
analogWrite(RedE, 255);
analogWrite(GreenE, 255);
analogWrite(BlueE, 255);
analogWrite(RedH, 255);
analogWrite(GreenE, 255);
analogWrite(BlueE, 255);
delay(500);
analogWrite(RedE, 0);
analogWrite(GreenE, 0);
analogWrite(BlueE, 0);
analogWrite(RedH, 0);
analogWrite(GreenE, 0);
analogWrite(BlueE, 0);
}
//Relay commands
void Lock_doors() {
allrgbon();
allwindowsup();
delay(500);
allrgboff();
flashRGB();
}
void Trunk() {
digitalWrite(trunk, LOW);
}
void Unlock_Doors() {
digitalWrite(unlock, LOW);
allrgbon();
delay(500);
digitalWrite(unlock, HIGH);
delay(9500);
allrgboff();
}
void Sunroofopen() {
digitalWrite(osunroof, LOW);
delay(500);
digitalWrite(osunroof, HIGH);
}
void Sunroofclose() {
digitalWrite(csunroof, LOW);
delay(500);
digitalWrite(csunroof, HIGH);
}
void Driver_windowup() {
digitalWrite(Driver_up, LOW);
delay(6000);
digitalWrite(Driver_up, HIGH);
}
void Passenger_windowup() {
digitalWrite(Pass_up, LOW);
delay(6000);
digitalWrite(Pass_up, HIGH);
}
void Driver_windowdown() {
digitalWrite(Driver_down, LOW);
delay(6000);
digitalWrite(Driver_down, HIGH);
}
void Passenger_windowdown() {
digitalWrite(Pass_down, LOW);
delay(6000);
digitalWrite(Pass_down, HIGH);
}
void allwindowsup() {
digitalWrite(Driver_up, LOW);
digitalWrite(Pass_up, LOW);
delay(6000);
digitalWrite(Driver_up, HIGH);
digitalWrite(Pass_up, HIGH);
}
void Accessory_power() {
if (digitalRead(Accessory) == HIGH) {
digitalWrite(Accessory, LOW);
} else {
digitalWrite(Accessory, HIGH);
}
}
void Headlight() {
if (digitalRead(Headlights) == HIGH) {
digitalWrite(Headlights, LOW);
Serial.print(“Headlights On”);
} else {
digitalWrite(Headlights, HIGH);
Serial.print(“Headlights Off”);
}
}
void Horns() {
Serial.print(“Horn Played”);
digitalWrite(Horn, LOW);
delay(1000);
digitalWrite(Horn, HIGH);
}
void Halos_off() {
analogWrite(RedH, 0);
analogWrite(GreenH, 0);
analogWrite(BlueH, 0);
}
void Interior_off() {
analogWrite(RedI, 0);
analogWrite(GreenI, 0);
analogWrite(BlueI, 0);
}
void underbody_off() {
analogWrite(RedE, 0);
analogWrite(GreenE, 0);
analogWrite(BlueE, 0);
}
void choice(String s) {
if (s.equalsIgnoreCase(“Blue”)) {
} else if (s.equalsIgnoreCase(“Red”)) {
} else if (s.equalsIgnoreCase(“Green”)) {
} else if (s.equalsIgnoreCase(“Purple”)) {
} else if (s.equalsIgnoreCase(“Yellow”)) {
} else if (s.equalsIgnoreCase(“Orange”)) {
} else if (s.equalsIgnoreCase(“Teal”)) {
} else if (s.equalsIgnoreCase(“Pink”)) {
} else if (s.equalsIgnoreCase(“Strobe”)) {
}
}
void Voice(int s) {
switch (s) {
case 1:
Remote_start();
break;
case 2:
Turn_off();
break;
case 3:
Trunk();
break;
case 4:
Unlock_Doors();
break;
case 5:
Lock_doors();
break;
case 6:
Sunroofopen();
break;
case 7:
Sunroofclose();
break;
case 8:
Driver_windowdown();
break;
case 9:
Driver_windowup();
break;
case 10:
Passenger_windowdown();
break;
case 11:
Passenger_windowup();
break;
case 12:
allwindowsup();
break;
case 13:
Accessory_power();
break;
case 14:
Accessory_power();
break;
case 15:
Headlight();
break;
case 16:
Headlight();
break;
case 17:
Horns();
break;
case 18:
Police_Mode();
break;
case 19:
allrgboff();
break;
case 20:
allrgbon();
break;
case 21:
Reset();
break;
case 22:
camaro.ask(“What color?”);
color = camaro.getResult();
choice(color);
break;
case 23:
Halos_off();
break;
case 24:
camaro.ask(“What color?”);
color = camaro.getResult();
choice(color);
break;
case 25:
Interior_off();
break;
case 26:
camaro.ask(“What color?”);
color = camaro.getResult();
choice(color);
break;
case 27:
underbody_off();
color = camaro.getResult();
break;
case 28:
camaro.ask(“Can I still listen outside?”);
ans = camaro.getResult();
if (ans.equalsIgnoreCase(“No”)) {
digitalWrite(outmicrophone, HIGH);
digitalWrite(outspeaker, HIGH);
}
break;
case 29:
digitalWrite(outmicrophone, LOW);
digitalWrite(outspeaker, LOW);
}
}
void setup() {
// put your setup code here, to run once:
camaro.init();
// camaro.callSign(“Camaro”);
// camaro.addSentence(“Kakeru”); //1
// camaro.addSentence(“Kesu”); //2
// camaro.addSentence(“Open the Trunk”); //3
// camaro.addSentence(“Unlock the doors”); //4
// camaro.addSentence(“Lock the doors”); //5
// camaro.addSentence(“Open the Sun roof”); //6
// camaro.addSentence(“Close the Sun roof”); //7
// camaro.addSentence(“Open the driver window”); //8
// camaro.addSentence(“Close the driver window”); //9
// camaro.addSentence(“Open the passenger window”); //10
// camaro.addSentence(“Close the passenger window”); //11
// camaro.addSentence(“Close all the Windows”); //12
// camaro.addSentence(“Turn on the Accessory Power”); //13
// camaro.addSentence(“Turn off the Accessory Power”); //14
// camaro.addSentence(“Turn on the Head lights”); //15
// camaro.addSentence(“Turn off the Head lights”); //16
// camaro.addSentence(“Beep”); //17
// camaro.addSentence(“Police Mode”); //18
// camaro.addSentence(“Turn off all Lights”); //19
// camaro.addSentence(“Turn on all the lights”); //20
// camaro.addSentence(“Reset”); //21
// camaro.addSentence(“Turn on Halos”); //22
// camaro.addSentence(“Turn off Halos”); //23
// camaro.addSentence(“Turn on Demon Eyes”); //24
// camaro.addSentence(“Turn off Demon Eyes”); //25
// camaro.addSentence(“Turn on Under body lights”); //26
// camaro.addSentence(“Turn off Under body lights”); //27
// camaro.addSentence(“Use your inside voice”); //28
// camaro.addSentence(“Use your outside voice”); //29
// camaro.train();
//play voice
pinMode(Horn, OUTPUT);
pinMode(Headlights, OUTPUT);
pinMode(RedE, OUTPUT);
pinMode(GreenE, OUTPUT);
pinMode(BlueE, OUTPUT);
pinMode(RedI, OUTPUT);
pinMode(GreenI, OUTPUT);
pinMode(BlueI, OUTPUT);
pinMode(Accessory, OUTPUT);
pinMode(Ignition, OUTPUT);
pinMode(RedH, OUTPUT);
pinMode(GreenH, OUTPUT);
pinMode(BlueH, OUTPUT);
pinMode(RUN, OUTPUT);
pinMode(clutch, OUTPUT);
pinMode(osunroof, OUTPUT);
pinMode(csunroof, OUTPUT);
pinMode(amp, OUTPUT);
pinMode(Driver_up, OUTPUT);
pinMode(Driver_down, OUTPUT);
pinMode(Pass_up, OUTPUT);
pinMode(Pass_down, OUTPUT);
pinMode(trunk, OUTPUT);
pinMode(lock, OUTPUT);
pinMode(unlock, OUTPUT);
pinMode(reset, OUTPUT);
pinMode(brake, INPUT);
pinMode(rQuit, OUTPUT);
digitalWrite(Horn, HIGH);
digitalWrite(Headlights, HIGH);
digitalWrite(amp, HIGH);
digitalWrite(Accessory, HIGH);
digitalWrite(Ignition, HIGH);
digitalWrite(RUN, HIGH);
digitalWrite(osunroof, HIGH);
digitalWrite(csunroof, HIGH);
digitalWrite(Driver_up, HIGH);
digitalWrite(Driver_down, HIGH);
digitalWrite(Pass_up, HIGH);
digitalWrite(Pass_down, HIGH);
digitalWrite(trunk, HIGH);
digitalWrite(lock, HIGH);
digitalWrite(unlock, HIGH);
digitalWrite(outmicrophone, HIGH);
digitalWrite(outspeaker, HIGH);
digitalWrite(rQuit, LOW);
Serial.begin(9600); //bluetooth module
Serial.println(“Arduino is Ready”);
}
void loop() {
// put your main code here, to run repeatedly:
//signed int voice = camaro.poll();
operation_bluetooth();
compare();
if (newdata == true) {
strcpy(tempcharacter, character);// this copies the data from character to a temporary array to keep Character
parsedata();
show_parsedata();
for (i = 0; i < 19; i++) {
Serial.println(rgb[i]);
Serial.println(character);
int result = strcmp(pc, rgb[i]);
if (result == 0) {
BCM(i);
break;
} else {
Serial.println(“String’s don’t match”);
}
}
newdata = false;
}//else if (voice > 0) {
// Voice(voice);
// }
}
//Methods to handle Serial data
void operation_bluetooth() {
char cn; //character being received right now
static int t = 0; //counter for Serial character array
char startercharacter = ‘A’;//Tells Arduino when characters are being received
char endcharacter = ‘Z’; //Tells Arduino when the characters are done being received
static boolean serialinprogress = false;// Check if Arduino is receiving characters
while (Serial.available() > 0 && newdata == false) {
cn = Serial.read();
if (serialinprogress == true) {
if (cn != endcharacter) {
character[t] = cn;
t++;
}
else {
character[t] = ‘\0’; // terminate the string
serialinprogress = false;
t = 0;
newdata = true;
}
} else if (cn == startercharacter) {
serialinprogress = true;
}
}
}
void compare() {
if (newdata == true) {
Serial.println(character);
//newdata = false;
}
}
void parsedata() { //Splits the data
char * index; //used by strtok() as index strtok splits strings into tokens
//first iteration
index = strtok(tempcharacter, “,”); //gets the first part - the charcter array
strcpy(pc, index); //copy it to the array pc
//second iteration
index = strtok(NULL, “,”);
red = atoi(index); // converts first number to red rgb controller
//third iteration
index = strtok(NULL, “,”);
green = atoi(index); // converts first number to green rgb controller
//fourth iteration
index = strtok(NULL, “,”);
blue = atoi(index); // converts first number to blue rgb controller
}
void show_parsedata() {
Serial.print(“String:”);
Serial.println(pc);
Serial.print(“Red:”);
Serial.println(red);
Serial.print(“Green:”);
Serial.println(green);
Serial.print(“Blue:”);
Serial.println(blue);
}
`
Can anyone help me figure out what’s wrong with my Movi code.