Phần cứng cần thiết:
28BYJ48
ULN2003-XD
ULN2003-XL
Sơ đồ chân LCD Keypad Shield:
Mô tả:
Sơ đồ kết nối:
Thư viện:
Vào mục Sketch --> Include Library --> Manage Libraries
Code:
#include < AccelStepper . h >
#include < LiquidCrystal . h >
//LCD pin to Arduino
const int pin_RS = 8 ;
const int pin_EN = 9 ;
const int pin_d4 = 4 ;
const int pin_d5 = 5 ;
const int pin_d6 = 6 ;
const int pin_d7 = 7 ;
//const int pin_Backlight = 10;
LiquidCrystal lcd ( pin_RS , pin_EN , pin_d4 , pin_d5 , pin_d6 , pin_d7 ) ;
#define HALFSTEP 8
// Motor pin definitions
#define motorPin1 3 // IN1 on the ULN2003 driver 1
#define motorPin2 11 // IN2 on the ULN2003 driver 1
#define motorPin3 12 // IN3 on the ULN2003 driver 1
#define motorPin4 13 // IN4 on the ULN2003 driver 1
// Initialize with pin sequence IN1-IN3-IN2-IN4 for using the AccelStepper with 28BYJ-48
AccelStepper stepper1 ( HALFSTEP , motorPin1 , motorPin3 , motorPin2 , motorPin4 ) ;
char ledState ;
void setup ( ) {
stepper1 . setMaxSpeed ( 1000 ) ;
stepper1 . setAcceleration ( 2000 ) ;
//stepper1.setSpeed(2000);
//stepper1.moveTo(2048);
Serial . begin ( 9600 ) ;
lcd . begin ( 16 , 2 ) ;
lcd . setCursor ( 0 , 0 ) ;
lcd . print ( " ULN2003 " ) ;
lcd . setCursor ( 0 , 1 ) ;
lcd . print ( " STEP_MOTOR " ) ;
} //--(end setup )---
void loop ( ) {
//Change direction when the stepper reaches the target position
int x ;
x = analogRead ( 0 ) ;
if ( x < 60 ) {
lcd . setCursor ( 15 , 0 ) ;
lcd . print ( "+" ) ;
if ( stepper1 . distanceToGo ( ) == 0 ) {
stepper1 . moveTo ( stepper1 . currentPosition ( ) - 4096 ) ;
}
}
else if ( x < 200 ) {
lcd . setCursor ( 15 , 0 ) ;
lcd . print ( "+" ) ;
if ( stepper1 . distanceToGo ( ) == 0 ) {
stepper1 . moveTo ( stepper1 . currentPosition ( ) - 1000 ) ;
}
}
else if ( x < 400 ) {
lcd . setCursor ( 15 , 0 ) ;
lcd . print ( "-" ) ;
if ( stepper1 . distanceToGo ( ) == 0 ) {
stepper1 . moveTo ( stepper1 . currentPosition ( ) + 1000 ) ;
}
}
else if ( x < 600 ) {
lcd . setCursor ( 15 , 0 ) ;
lcd . print ( "-" ) ;
if ( stepper1 . distanceToGo ( ) == 0 ) {
stepper1 . moveTo ( stepper1 . currentPosition ( ) + 4096 ) ;
}
}
else if ( x < 800 ) {
lcd . print ( "Select" ) ;
}
//if (Serial.available() > 0)
//{
// ledState = Serial.read();
// switch (ledState)
// {
// case '0':
// {
// if (stepper1.distanceToGo() == 0) {
// stepper1.moveTo(stepper1.currentPosition() + 4096);
// }
// lcd.setCursor(0, 0);
// lcd.print("ULN2003 STEPMOTOR");
// /*lcd.setCursor(0, 0);
// lcd.print("Position: +500");*/
// lcd.setCursor(0, 1);
// lcd.print("PROG: 0");
// ledState = ' ';
// break;
// }
// case '1':
// {
// if (stepper1.distanceToGo() == 0) {
// stepper1.moveTo(stepper1.currentPosition() - 4096);
// }
// lcd.setCursor(0, 0);
// lcd.print("Position: -500");
// lcd.setCursor(0, 1);
// lcd.print("PROG: 1");
// ledState = ' ';
// break;
// }
// case '2':
// {
// if (stepper1.distanceToGo() == 0) {
// stepper1.moveTo(-stepper1.currentPosition());
// }
// lcd.setCursor(0, 1);
// lcd.print("PROG: 2");
// ledState = ' ';
// break;
// }
// }
//}
stepper1 . run ( ) ;
}
Video
VIDEO
Nhận xét
Woori Casino | Best Bonus | Woori Casino Online
Trả lờiXóaJoin Woori Casino to claim your £50 FREE choegocasino.com twitter welcome bonus and win 우리 카지노 먹튀 big cash! Get your 제왕 카지노 보증 favourite welcome bonus and 토토사이트 100 free 온라인 카지노 슬롯머신 spins!