Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <LiquidCrystal.h>
- LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
- //Definizione dei PIN
- const int pinDir = 2;
- const int pinStep = 3;
- int giri = 1; //giri * minuto
- int vel1 = A5;
- int vel2 = A4;
- int vel3 = A3;
- int vel = 1;
- int value = 0;
- void setup() {
- //inizializzo i PIN come OUTPUT
- pinMode(pinStep, OUTPUT);
- pinMode(pinDir, OUTPUT);
- lcd.begin(16, 2);
- lcd.print("giri/min:");
- lcd.setCursor(0, 1);
- lcd.print("velocita:");
- Serial.begin(9600);
- }
- void loop() {
- int sensorValue = analogRead(A0);
- if(sensorValue == 0){
- vel = vel + 1;
- delay (500);
- }
- if(sensorValue == 504){
- vel = vel - 1;
- delay (500);
- }
- if(vel == 1){
- analogWrite(vel1, 255);
- analogWrite(vel2, 255);
- analogWrite(vel3, 255);
- }
- if(vel == 2){
- analogWrite(vel1, 0);
- analogWrite(vel2, 255);
- analogWrite(vel3, 255);
- }
- if(vel == 3){
- analogWrite(vel1, 0);
- analogWrite(vel2, 0);
- analogWrite(vel3, 255);
- }
- if(vel == 4){
- analogWrite(vel1, 0);
- analogWrite(vel2, 0);
- analogWrite(vel3, 0);
- }
- if(vel >= 5){
- vel = 1;
- }
- if(vel <= 0){
- vel = 1;
- }
- long velocita = 600000 / giri; //Si tratta di microsecondi tra un impulso e l'altro sul pin STEP
- if (sensorValue == 143){
- giri = giri + 1;
- delay (500);
- }
- if (sensorValue == 331){
- giri = giri - 1;
- delay (500);
- }
- //definiamo la direzione del motore
- if (giri < 0){
- digitalWrite(pinDir, LOW);
- }
- else{
- digitalWrite(pinDir, HIGH);
- }
- lcd.setCursor(9, 0);
- lcd.print(giri);
- lcd.setCursor(9, 1);
- lcd.print(vel);
- if(giri == 0){
- digitalWrite(pinStep, LOW);
- }
- else if (value == 1){
- digitalWrite(pinStep, LOW);
- lcd.setCursor(12, 0);
- lcd.print("STOP");
- }
- else{
- digitalWrite(pinStep, HIGH);
- delayMicroseconds(velocita);
- digitalWrite(pinStep, LOW);
- delayMicroseconds(velocita);
- }
- if(sensorValue == 740){
- value = value + 1;
- delay (500);
- }
- if (value == 2){
- value = 0;
- lcd.setCursor(12, 0);
- lcd.print(" ");
- }
- }
Add Comment
Please, Sign In to add comment