DC motor speed control circuit
The circuit uses a small LDR, which is sensitive to the intensity of light. Voltages generated from the LDR are compared using an internal ADC of Arduino Uno, which turns on as light intensity goes above a certain voltage threshold. This voltage has already been calibrated for specific positions of the hand with respect to the LDR.
Arduino Uno has a 10-bit ADC and its value ranges from zero to 1024. But, the pulse-width modulation (PWM) output from Arduino ranges from zero to 255. Thus, values coming from the ADC decrease by four times. These are divided into three ranges as shown in Table I.[stextbox id=”grey” caption=”Software programme”]
if(val<60) analogWrite(9,0); If 60>LDR output, send PWM (0) value to pin 9 of Arduino Uno.
if(val>60 && val<200) analogWrite(9,40); If 60 if(val>200 && val<255)
EFY note. LDR based speed variation is a very easy way of varying the speed of a DC motor. Change in speed from one to another is very smooth. But the number of distinct variations in speed is less. Only three prominent variations in 5V could be observed.
Feel interested? Check out other electronics projects.