Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Made by L22_Amoebas
- #define KV 9 //Концевой выключатель
- #define EN 8
- #define X_DIR 5
- #define X_STP 2
- //Количество точек + 1
- const int len=6;
- int j,m,p,q;
- int points[len]={0,10,35,5,75,24};
- int steps[len];
- void setup() {
- Serial.begin(9600);
- pinMode(EN, OUTPUT);
- pinMode(X_DIR, OUTPUT);
- pinMode(X_STP, OUTPUT);
- pinMode(KV,INPUT_PULLUP);
- digitalWrite(EN, LOW);
- //Подсчет шагов в массив для данных точек
- for (j=0;j<len;j++){
- steps[j]=points[j]*5;
- }
- //Калибровка
- cal();
- digitalWrite(X_DIR, 1);
- }
- void loop() {
- xMove();
- }
- void xMove(){
- for (j=1;j<len;j++){
- p=steps[j]-steps[j-1];
- if (p<0){
- digitalWrite(X_DIR, 0);
- p=abs(p);
- }
- for (q=0;q<p;q++) {
- digitalWrite(X_STP, LOW);
- delayMicroseconds(10);
- digitalWrite(X_STP, HIGH);
- delayMicroseconds(3000);
- }
- digitalWrite(X_DIR, 1);
- delay(2000);
- }
- }
- void cal(){
- int butt;
- digitalWrite(X_DIR, 0);
- while(true){
- digitalWrite(X_STP, LOW);
- delayMicroseconds(10);
- digitalWrite(X_STP, HIGH);
- delayMicroseconds(2000);
- butt=digitalRead(KV);
- if (butt==0){
- break;
- }
- }
- delay(100);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement