Hello all, I'm back with another issue. Right now, I have my arduino hooked up to a motor shield (r3) and I have it polling for serial input. I am basically sending the characters i and o over serial, but I cannot get it to work outside the Serial Monitor. I have an OS X app that sends serial commands that works fine with my Arduino Micro, but doesn't on my Uno.
Code:
//Arduino Control
int ledPin = 13; // LED connected to digital pin 13
int incomingByte = 0; // for incoming serial data
int dirA = 12;
int speedA = 3;
// The setup() method runs once, when the sketch starts
void setup() {
// initialize the digital pin as an output:
pinMode(ledPin, OUTPUT);
pinMode (dirA, OUTPUT);
pinMode (speedA, OUTPUT);
Serial.begin(9600);
}
// the loop() method runs over and over again,
// as long as the Arduino has power
void loop()
{
if (Serial.available() > 0) {
// read the incoming byte:
incomingByte = Serial.read();
Serial.print(incomingByte);
if(incomingByte == 105){
digitalWrite (dirA, HIGH);
analogWrite (speedA, 255);
delay(600);
digitalWrite (dirA, LOW);
analogWrite (speedA, 0);
}
else if(incomingByte == 111){
digitalWrite (dirA, LOW);
digitalWrite (dirA, HIGH);
analogWrite (speedA, 255);
delay(600);
analogWrite (speedA, 0);
}
}
}
OS X code:
ORSSerialPort *serialPort = [ORSSerialPort serialPortWithPath:@"/dev/cu.usbmodem1d11"];
serialPort.baudRate = [NSNumber numberWithInteger:9600];
[serialPort open];
NSData *someData;
_state = characteristic;
if(characteristic.boolValue == YES){
NSLog(@"yes!");
someData = [@"i" dataUsingEncoding:NSUTF8StringEncoding];
// popen("echo i > /dev/cu.usbmodem1d11", "r");
}else{
NSLog(@"no!");
someData = [@"o" dataUsingEncoding:NSUTF8StringEncoding];
// popen("echo o > /dev/cu.usbmodem1d11", "r");
}
[serialPort sendData:someData];
[serialPort close];