The following sketch i found on the net, from somewhere ??? If it's you, my apologies .
I have edited the sketch to make it more ledge-able.
sketch.ino
String pinnum = "";
String commands = "";
String instruct = "";
int value = 0;
int pin;
void setup(){
Serial.begin(9600);
}
void loop(){
char inchar;
int count = 0;
if(Serial.available() > 0){
while(inchar != '\n'){
if (Serial.available()){
inchar = Serial.read();
if(inchar == '\n'){
break;
}
if(count<4){
commands += (char)inchar;
count++;
}
else{
instruct += (char)inchar;
}
}
}
//value = instruct.toInt();
pinnum = commands.substring(2,4);
pin = pinnum.toInt();
switch(commands.charAt(0)){
case 'a':
analog();
break;
case 'd':
digital();
break;
}
clearall();
}
}
void analog(){
switch(commands.charAt(1)){
case 'r':
value = analogRead(pin);
Serial.println(value);
break;
case 'w':
Serial.print(pin);
Serial.println("ok");
pinMode(pin,OUTPUT);
value = instruct.toInt();
analogWrite(pin,value);
break;
}
}
void digital(){
switch(commands.charAt(1)){
case 'r':
pinMode(pin,INPUT);
value = digitalRead(pin);
Serial.println(value);
break;
case 'w':
Serial.print(pin);
Serial.println("ok");
pinMode(pin,OUTPUT);
value = instruct.toInt();
digitalWrite(pin,value);
break;
}
}
void clearall(){
commands = "";
instruct = "";
pinnum = "";
}
I have played with this to make and understand gui development easier, i am mixing this with my own code, this gives me an extra layer of control-ability. By itself , it just makes the arduino a simple terminal , waiting for instructions from U. The U in gUi.
I have used this in Auto-IT, Realbasic, Terminal & Flowstone (which is what i am currently using).
From terminal or your preferred IDE, The following are used, when a serial connection has been established;
d = digital
a = analog
w = write
r = read
dw12+1 //digitalwrite pin 12 HIGH
dr12 //digitalread pin 12
aw0+10 //analoglwrite pin 0 value of 10
ar0 //analoglread pin 0
This adds flexibility, giving you the chance to simulate situations without any extra components needed.
I exclude the use of Pins D0, D1 & D13, i exclude the RX/TX lines & Pin 13 as;
dw13+0 //make 13 low
dr13 // you get 0/low but the ping goes high after reading :~
I hope this helps somebody, because it is reallllllly helping me.