Ardudro (4 / 7 étapes)

Étape 4: Mon code. Yay encore plus.

Il s’agit de la version actuelle du code (rev2), et il ne supporte que x et y boutons de réinitialisation et peu de choses (qui fonctionne toujours sur des fonctions de fraisage).
Suffit de copier et coller dans l’arduino et il devraient fonctionner si vous avez déjà les bibliothèques encodeur et tv.

Ardudro programme, révision 2

#define ENCODER_OPTIMIZE_INTERRUPTS
n’ont pas essayé d’utiliser la ligne ci-dessus encore, peut le rendre plus rapide, mais ne peut pas.
#include < Encoder.h >
#include < TVout.h >
int xminus = 0 ;
int yminus = 0 ;
MyEnc encodeur (2, 7); //flip « myEnc » et « Ecy » si les axes X et Y sont en arrière
Ecy encodeur (3, 6) ;
flotteur anaval = 0 ;
float value01 = 0 ;
float val = 1000 ;
nombre en virgule flottante ;
float value10 ;
float value100 ;
int
int r = 0 ;
flotteur pos = 0 ;
int rd = 4 ;
long np = 0 ;
flotteur incr = 0,000390625 ; 1/2560, ce numéro peut changer pour votre configuration.  Assurez-vous d’utiliser un nombre décimal, pas une fraction.
onx int = 12 ;
negx int = 0 ;
npy long = 0 ;
ty int = 0 ;
TVout TV ;
const int buttonx = 11 ; //flip ces deux (x et y ou les numéros) si les boutons sont désactivés.
const int buttony = 10 ;
unsigned char x, y ;
J’ai char = 48 ;
int ic = 6 ;
void setup() {}
pinMode(buttonx,INPUT) ;
pinMode(buttony,INPUT) ;
digitalWrite(buttonx,HIGH) ;
digitalWrite(buttony,HIGH) ;
x = 0 ;
y = 0 ;
TV.begin(_NTSC,110,30) ;
}

void loop() {}
if(digitalRead(ButtonX) == 0) {//this n’a pas besoin d’être lu immédiatement, donc nous allons utiliser la boucle
au lieu d’une interruption.  De plus, les encodeurs utilisent les autres interruptions.
myEnc.write(0) ;
}
if(digitalRead(buttony) == 0) {//same ici.
Ecy.Write(0) ;
}

NP = myEnc.read() ;
NP = np *-1 ; décommenter si l’axe des X est remis
Delay(1) ;
Ty = 0 ;
TV.print_char(onx,ty,'X') ;
Si (val! = np) {}
Si (np < 0) {}
Val = -1 * np ;
NegX = 1 ;
} else {}
Val = np ;
NegX = 0 ;
}
}
DISP() ;
NP = Ecy.read() ;
NP = np *-1; //uncomment si l’axe des Y est retournée
Delay(1) ;
Ty = 10 ;
TV.print_char(onx,ty,'Y') ;
Si (val! = np) {}
Si (np < 0) {}
Val = -1 * np ;
NegX = 1 ;
} else {}
Val = np ;
NegX = 0 ;
}
}
DISP() ;
}

void stringer() {}
value01 = val ;
valeur = val / 10 ;
value10 = val / 100 ;
value100 = val / 1000 ;
valeur = int(value) ;
value10 = int(value10) ;
value100 = int(value100) ;
value01 = int(value01) ;
value01 = value01 - (valeur * 10) ;
valeur = valeur - (value10 * 10) ;
value10 = value10 - (value100 * 10) ;
}

void disp() {}
Val = val * incr ;
Val = int(val * 1000) ;
Stringer() ;
Si (negx == 1) {}
TV.print_char(onx-ic,ty,'-') ;
} else {}
TV.print_char (onx-ic, ty,' ') ;
}
TV.print_char(onx+ic,ty,char(value100)+48) ;
TV.print_char(onx+(ic*2),ty,char(value10)+48) ;
TV.print_char(onx+(ic*3),ty,char(value)+48) ;
TV.print_char(onx+(ic*4),ty,char(value01)+48) ;

}

Articles Liés