Stepping forward with Arduino Bluetooth communication
Sunday, February 7th, 2010The video shows that changing the display state can either be done locally (by pushing a button) or by receiving data via the Bluetooth RFCOMM link. On a state change data is also transmitted via this link. For the Arduino this is done by just using the serial port.
See the Arduino code below:
#include <S65Display.h>
S65Display lcd;
int state=0;
const int button1_pin=2;
const int button2_pin=3;
void drawText_0(void)
{
lcd.drawTextPGM(30, 50, PSTR("State 0"), 2, RGB(0, 0, 255), RGB(255, 255, 255));
}
void drawText_1(void)
{
lcd.drawTextPGM(30, 50, PSTR("State 1"), 2, RGB(0, 0, 255), RGB(255, 255, 255));
}
void setup()
{
state=0;
//init LCD
lcd.init(4); //spi-clk = Fcpu/4
//clear screen
lcd.clear(RGB(255, 255, 255));
drawText_0();
pinMode(button1_pin, INPUT);
pinMode(button2_pin, INPUT);
Serial.begin(9600);
}
void loop()
{
static byte recvd_byte=' ';
if (Serial.available() > 0)
{
recvd_byte=Serial.read();
}
if ((state == 0) && ((digitalRead(button2_pin) == LOW) || (recvd_byte=='1')))
{
state=1;
drawText_1();
Serial.println("State 1");
recvd_byte=' ';
}
if ((state == 1) && ((digitalRead(button1_pin) == LOW) || (recvd_byte=='0')))
{
state=0;
drawText_0();
Serial.println("State 0");
recvd_byte=' ';
}
}