Skip to content

Instantly share code, notes, and snippets.

@fulminator
Created April 19, 2013 19:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fulminator/5422506 to your computer and use it in GitHub Desktop.
Save fulminator/5422506 to your computer and use it in GitHub Desktop.
// biblioteci
#include <Stepper.h>
// bufferul care contine informatia:
char buffer[6];
// indexul folosit pentru salvarea char-urilor in buffer
byte i;
// ledul de pe placuta
int led = 13;
// cele 3 variabile ce ne intereseaza
int sens, viteza, pasi = 0 ;
// motorul
Stepper myStepper(pasi, 7,8);
// setup
void setup(){
Serial.begin(9600);
pinMode(led, OUTPUT);
memset(buffer, '\0', 50);
}
// loop
void loop(){
// salvarea char-urilor primite prin serial in buffer
i = 0;
while (Serial.available()) {
buffer[i++] = Serial.read();
buffer[i] = '\0';
}
// trierea char-urilor
if (strlen(buffer) > 0){
// sensul (primul caracter) 0 sau 1
sens = buffer[0] - '0';
// viteza (urmatoarele 2 caractere) 0 -> 99
char vitezaArr[2];
vitezaArr[0] = buffer[1];
vitezaArr[1] = buffer[2];
vitezaArr[2] = '\0';
viteza = atoi(vitezaArr);
// pasii (ultimele 3 caractere) 0 -> 999
char pasiArr[3];
pasiArr[0] = buffer[3];
pasiArr[1] = buffer[4];
pasiArr[2] = buffer[5];
pasiArr[3] = '\0';
pasi = atoi(pasiArr);
// afiseaza cele 3 variabile
Serial.print("sens: ");
Serial.print(sens);
Serial.print(" viteza: ");
Serial.print(viteza);
Serial.print(" pasi: ");
Serial.println(pasi);
myStepper.step(pasi);
// partea de comanda
myStepper.setSpeed(viteza);
if (sens == 0) {
myStepper.step(pasi);
delay(500);
} else {
myStepper.step(-pasi);
delay(500);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment