Crea sito
Facebook GooglePlus Twitter
Diaspora YouTube LinkeIn

Esempio per test - Arduino e Teensy

Guide e Manuali per Arduino

Esempio per test - Arduino e Teensy

Messaggio da leggereda benedetto il 18/06/2012, 12:37

Questo sketch è stato sviluppato per Teensy con teensyduino ma può benissimo andare anche su arduino.
L'ho pensato prevalentemente come strumento di testing, ma siete liberi di usare questo codice sotto GPL :D
Funziona tutto da console seriale, e un help iniziale vi aiuterà (to' guarda :D) ad orientarvi nelle diverse opzioni.

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? :D è solo un'idea
Elementary OS... ma nostalgia di Gentoo :geek:
Avatar utente
benedetto
Brigata Linux
 
Messaggi: 364
Iscritto il: 22/05/2012, 22:43
Località: Milanoooo

  • Condividi e Vota l'articolo
  • Condividi e questo articolo di LaScaricata

    Share on Tumblr

Torna a Guide e Manuali

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

 
Creative Commons License

Dichiarazione di non responsabilita': Nessuno dei files indicati su questo sito e' ospitato o trasmesso da questo server. I links sono forniti dagli utenti del sito, basandosi su servizi esterni. Il progetto LaScaricata non puo' essere ritenuto in alcun modo responsabile per qualsiasi pubblicazione o altra azione commessa dagli utenti. Non e' consentito usare questo sito per la distribuzione o il download di materiale se non si e' espressamente autorizzati a farlo. Siete tenuti a rispettare termini e regolamento del sito.