Devices & Components
Arduino Uno Rev3
Geared DC Motor, 12 V
Darlington High Power Transistor
Alphanumeric LCD, 20 x 4
Hardware & Tools
Breadboard, 270 Pin
Software & Tools
Arduino IDE
Project description
Code
DC Motor speed control and measurement using Arduino and LCD
c_cpp
DC Motor speed control and measurement using Arduino and LCD
1#include <LiquidCrystal.h> 2 3LiquidCrystal lcd(8, 9, 10, 11, 12, 13); 4#define motor_RPS_pulse_ip 7 5#define motor_PWM_pulse_ip 4 6int motor_RPS_Ton,motor_RPS_Toff,PWM_Ton,PWM_Toff,PWM_T; 7int PWM_duty,pulse_width=255,RPS,motor_RPS_period,RPM; 8float voltage; 9 10void setup() 11{ 12 pinMode(motor_RPS_pulse_ip,INPUT); 13 pinMode(motor_PWM_pulse_ip,INPUT); 14 lcd.begin(16, 4); 15 lcd.clear(); 16 lcd.print("Pulse Width:"); 17 lcd.setCursor(0,1); 18 lcd.print("PWM Volt:"); 19 lcd.setCursor(0,2); 20 lcd.print("Speed(RPS):"); 21 lcd.setCursor(0,3); 22 lcd.print("Speed(RPM):"); 23} 24void loop() 25{ 26 analogWrite(3,pulse_width); 27 PWM_Ton= pulseIn(motor_PWM_pulse_ip,HIGH); 28 PWM_Toff=pulseIn(motor_PWM_pulse_ip,LOW); 29 delay(2000); 30 PWM_T = PWM_Ton+PWM_Toff; 31 PWM_duty = (PWM_Ton/PWM_T)*100; 32 voltage = 0.12*PWM_duty; 33 lcd.setCursor(12,0); 34 lcd.print(PWM_duty); 35 lcd.print('%'); 36 lcd.setCursor(9,1); 37 lcd.print(voltage); 38 lcd.print('V'); 39 pulse_width-=15; 40 if(pulse_width==90) pulse_width = 255; 41 delay(3000); 42}
DC Motor speed control and measurement using Arduino and LCD
c_cpp
DC Motor speed control and measurement using Arduino and LCD
1#include <LiquidCrystal.h> 2 3LiquidCrystal lcd(8, 9, 10, 11, 12, 4 13); 5#define motor_RPS_pulse_ip 7 6#define motor_PWM_pulse_ip 4 7int motor_RPS_Ton,motor_RPS_Toff,PWM_Ton,PWM_Toff,PWM_T; 8int 9 PWM_duty,pulse_width=255,RPS,motor_RPS_period,RPM; 10float voltage; 11 12void 13 setup() 14{ 15 pinMode(motor_RPS_pulse_ip,INPUT); 16 pinMode(motor_PWM_pulse_ip,INPUT); 17 18 lcd.begin(16, 4); 19 lcd.clear(); 20 lcd.print("Pulse Width:"); 21 lcd.setCursor(0,1); 22 23 lcd.print("PWM Volt:"); 24 lcd.setCursor(0,2); 25 lcd.print("Speed(RPS):"); 26 27 lcd.setCursor(0,3); 28 lcd.print("Speed(RPM):"); 29} 30void loop() 31{ 32 33 analogWrite(3,pulse_width); 34 PWM_Ton= pulseIn(motor_PWM_pulse_ip,HIGH); 35 36 PWM_Toff=pulseIn(motor_PWM_pulse_ip,LOW); 37 delay(2000); 38 PWM_T 39 = PWM_Ton+PWM_Toff; 40 PWM_duty = (PWM_Ton/PWM_T)*100; 41 voltage = 0.12*PWM_duty; 42 43 lcd.setCursor(12,0); 44 lcd.print(PWM_duty); 45 lcd.print('%'); 46 47 lcd.setCursor(9,1); 48 lcd.print(voltage); 49 lcd.print('V'); 50 51 pulse_width-=15; 52 if(pulse_width==90) pulse_width = 255; 53 delay(3000); 54}
DC Motor speed control and measurement using Arduino and LCD
c_cpp
DC Motor speed control and measurement using Arduino and LCD
1#include <LiquidCrystal.h> 2 3LiquidCrystal lcd(8, 9, 10, 11, 12, 13); 4#define motor_RPS_pulse_ip 7 5#define motor_PWM_pulse_ip 4 6int motor_RPS_Ton,motor_RPS_Toff,PWM_Ton,PWM_Toff,PWM_T; 7int PWM_duty,pulse_width=255,RPS,motor_RPS_period,RPM; 8float voltage; 9 10void setup() 11{ 12 pinMode(motor_RPS_pulse_ip,INPUT); 13 pinMode(motor_PWM_pulse_ip,INPUT); 14 lcd.begin(16, 4); 15 lcd.clear(); 16 lcd.print("Pulse Width:"); 17 lcd.setCursor(0,1); 18 lcd.print("PWM Volt:"); 19 lcd.setCursor(0,2); 20 lcd.print("Speed(RPS):"); 21 lcd.setCursor(0,3); 22 lcd.print("Speed(RPM):"); 23} 24void loop() 25{ 26 analogWrite(3,pulse_width); 27 PWM_Ton= pulseIn(motor_PWM_pulse_ip,HIGH); 28 PWM_Toff=pulseIn(motor_PWM_pulse_ip,LOW); 29 delay(2000); 30 PWM_T = PWM_Ton+PWM_Toff; 31 PWM_duty = (PWM_Ton/PWM_T)*100; 32 voltage = 0.12*PWM_duty; 33 lcd.setCursor(12,0); 34 lcd.print(PWM_duty); 35 lcd.print('%'); 36 lcd.setCursor(9,1); 37 lcd.print(voltage); 38 lcd.print('V'); 39 pulse_width-=15; 40 if(pulse_width==90) pulse_width = 255; 41 delay(3000); 42}
Comments
Only logged in users can leave comments