I have a problem where I kwow that my bluetooth module (HC-05) is connected to a processing sketch, but nothing ever gets sent from the processing sketch,why?
No error messages but the info never gets sent over because I never see it in Arduino, where it would be printed to the Serial Monitor.
Full Processing Code:
import processing.serial.*;
import controlP5.*;
Serial myPort;
ControlP5 cp5;
int slider1 = 0;
int slider2 = 0;
int slider3 = 0;
void setup() {
size(800, 800);
cp5 = new ControlP5(this);
PFont roboto = createFont("Roboto-Bold.ttf", 1, true);
ControlFont font = new ControlFont(roboto, 28);
Controller Aslider1 = cp5.addSlider("slider1")
.setPosition(85, 100)
.setCaptionLabel("Red")
.setRange(0, 255)
.setWidth(191)
.setHeight(50);
cp5.getController("slider1").getValueLabel().setFont(font).align(ControlP5.LEFT, ControlP5.BOTTOM_OUTSIDE).setPaddingX(0);
cp5.getController("slider1").getCaptionLabel().setFont(font).align(ControlP5.RIGHT, ControlP5.BOTTOM_OUTSIDE).setPaddingX(0);
Controller Aslider2 = cp5.addSlider("slider2")
.setPosition(301, 100)
.setCaptionLabel("Green")
.setRange(0, 255)
.setWidth(191)
.setHeight(50);
cp5.getController("slider2").getValueLabel().setFont(font).align(ControlP5.LEFT, ControlP5.BOTTOM_OUTSIDE).setPaddingX(0);
cp5.getController("slider2").getCaptionLabel().setFont(font).align(ControlP5.RIGHT, ControlP5.BOTTOM_OUTSIDE).setPaddingX(0);
Controller Aslider3 = cp5.addSlider("slider3")
.setPosition(517, 100)
.setCaptionLabel("Blue")
.setRange(0, 255)
.setWidth(191)
.setHeight(50);
cp5.getController("slider3").getValueLabel().setFont(font).align(ControlP5.LEFT, ControlP5.BOTTOM_OUTSIDE).setPaddingX(0);
cp5.getController("slider3").getCaptionLabel().setFont(font).align(ControlP5.RIGHT, ControlP5.BOTTOM_OUTSIDE).setPaddingX(0);
myPort = new Serial(this, "COM5", 9600);
}
void draw() {
background(255, 100, 100);
fill(255);
stroke(1);
rectMode(CENTER);
rect(width/2, 350, 200, 75);
fill(0);
textSize(32);
text("Send", width/2 - textWidth("Send") / 2, 350 + 10);
if (mouseX > width/2 - 100 && mouseX < width/2 + 100 && mouseY > 350 - 75/2 && mouseY < 350 + 75/2) {
if (mousePressed) {
fill(100);
stroke(1);
rectMode(CENTER);
rect(width/2, 350, 200, 75);
fill(0);
textSize(32);
text("Send", width/2 - textWidth("Send") / 2, 350 + 10);
} else {
fill(170);
stroke(1);
rectMode(CENTER);
rect(width/2, 350, 200, 75);
fill(0);
textSize(32);
text("Send", width/2 - textWidth("Send") / 2, 350 + 10);
}
}
}
void mouseReleased() {
if (mouseX > width/2 - 100 && mouseX < width/2 + 100 && mouseY > 350 - 75/2 && mouseY < 350 + 75/2) {
fill(100);
stroke(1);
rectMode(CENTER);
rect(width/2, 350, 200, 75);
fill(0);
textSize(32);
text("Send", width/2 - textWidth("Send") / 2, 350 + 10);
println(hex(color(int(slider1), int(slider2), int(slider3))).toString().substring(2));
myPort.write(hex(color(int(slider1), int(slider2), int(slider3))).toString().substring(2));
myPort.clear();
}
}
Full Arduino Code:
#include <SoftwareSerial.h>
#include <Adafruit_NeoPixel.h>
const int PIN = 6;
const int NUMPIXELS = 30;
const byte rxPin = 2;
const byte txPin = 3;
SoftwareSerial mySerial (rxPin, txPin);
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
unsigned long currentMillis;
unsigned long loopMillis;
unsigned long waitMillis;
int interval = 100;
int waitInterval = 0;
int redBrightness = 0;
int greenBrightness = 0;
int blueBrightness = 0;
bool wait = false;
bool goToRed = true;
bool goToOrange = false;
bool goToYellow = false;
bool goToGreen = false;
bool goToAqua = false;
bool goToPurple = false;
String hexValue;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
mySerial.begin(9600);
pixels.begin();
pixels.show();
}
void loop() {
if (mySerial.available() > 0) {
hexValue = mySerial.read();
Serial.println(hexValue);
if (hexValue != "shiftN" || hexValue != "shiftY") {
shiftMode = false;
// value is a hex
redBrightness = hexValue.substring(0, 2).toInt();
greenBrightness = hexValue.substring(2, 4).toInt();
greenBrightness = hexValue.substring(4, 6).toInt();
} else {
if (hexValue = "shiftY") {
shiftMode = true;
} else {
shiftMode = false;
}
}
}
pixels.show();
setColor(redBrightness, greenBrightness, blueBrightness);
}
void setColor(int red, int green, int blue) {
for (int i = 0; i < NUMPIXELS; i++) {
pixels.setPixelColor(i, red, green, blue);
}
}
Thanks for the help, cheers!