L'ho pensato prevalentemente come strumento di testing, ma siete liberi di usare questo codice sotto GPL

Funziona tutto da console seriale, e un help iniziale vi aiuterà (to' guarda

codice highlited:
http://pastebin.com/HVi7az4E
raw:
- Codice: Seleziona tutto
short unsigned pin = 10;
float curr = 0;
void stat() {
Serial.print("Set pin ");
Serial.print(pin);
Serial.print(" to ");
Serial.print(5.0/255*curr);
Serial.print(" Volt (");
Serial.print(curr);
Serial.println(")");
}
void setup() {
Serial.begin(9600);
pinMode(pin, OUTPUT);
Serial.println("Welcome on SV's Teensy 2.0\n-------------------------\nh=turn on the pin\nl=turn off the pin\nf=fade\nnXX=change the pin to XX\npXXX=turn on the pin with the XXX power\nt=sleep for 100 milliseconds\nT=sleep for 1 second\n|text|=prints 'text'\n-------------------------\nSet pin 10\n");
}
boolean pipe = false;
boolean led = 0;
short p = -2;
short n = -2;
int vals[3];
int vals_n[2];
long previousMillis;
int ledState;
int interval=500;
void loop() {
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > interval) {
previousMillis = currentMillis;
if (ledState == LOW)
ledState = HIGH;
else
ledState = LOW;
digitalWrite(11, ledState);
}
if(Serial.available()) {
char c = Serial.read();
if(c=='|') {
pipe=!pipe;
} else if(c=='h' && !pipe) {
digitalWrite(pin, HIGH);
curr = 255;
stat();
} else if(c=='l' && !pipe) {
digitalWrite(pin, LOW);
curr = 0;
stat();
} else if(c=='f' && !pipe) {
int i;
for(i=0; i<=255; i++) {
analogWrite(pin, i);
delay(10);
}
for(i=255; i>=0; i--) {
analogWrite(pin, i);
delay(10);
}
} else if(c=='+') {
curr+=5;
stat();
analogWrite(pin, curr);
} else if(c=='-') {
curr-=5;
stat();
analogWrite(pin, curr);
} else if(p>=0 && !pipe) {
if(c<'0' || c>'9') {Serial.println("Sintassi errata"); p=-2;}
vals[p]=c;
p--;
if (p==-1) {
int val = (vals[0]-'0') + (vals[1]-'0')*10 + (vals[2]-'0')*100;
if(val>255) {val=255;}
curr=val;
analogWrite(pin, val);
stat();
p = -2;
}
} else if(c=='p' && !pipe) {
p = 2;
} else if(n>=0 && !pipe) {
if(c<'0' || c>'9') {Serial.println("Sintassi errata"); n=-2;}
vals_n[n]=c;
n--;
if (n==-1) {
int val_n = (vals_n[0]-'0') + (vals_n[1]-'0')*10;
Serial.print("Changed pin from ");
Serial.print(pin);
Serial.print(" to ");
Serial.println(val_n);
pin = val_n;
n = -2;
}
} else if(c=='n' && !pipe) {
n = 1;
} else if(c=='t' && !pipe) {
Serial.print("Waiting 100 ms...");
delay(100);
Serial.println("OK");
} else if(c=='T' && !pipe) {
Serial.print("Waiting 1 s...");
delay(1000);
Serial.println("OK");
} else if(pipe) {
Serial.print(c);
}
}
}
EDIT: OT: mae89 e op, che ne dite di creare something o scopiazzarlo per highlitare codice?
