This is kind of under development project. It only demonstrates that we can echo the serial input to display device. Here is Arduino DC Motor Control with speed on TM1637 LED display with basic easy circuit. Basically if we run TM1637 LED Display, Arduino and DC Motor simultaneously drawing power from computer’s USB, performance becomes unreliable! More funnily, the basic circuit is of our Arduino DC Motor Speed Control guide with minimal modification. With one transistor, one resistor more can not be expected.
Arduino DC Motor Control With Speed On TM1637 LED Display
Wiring and components are like the previous Arduino DC Motor Speed Control guide. Extra is TM 1637. Add CLK to Pin 4, DIO to Pin 5, VCC to 5V or 3.3V of Arduino and GND to GND. Here is the code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | #include "SevenSegmentTM1637.h" int motorPin = 3; const byte PIN_CLK = 4; const byte PIN_DIO = 5; SevenSegmentTM1637 display(PIN_CLK, PIN_DIO); const byte BUFFER_SIZE = 128; char serialBuffer[BUFFER_SIZE]; void setup() { pinMode(motorPin, OUTPUT); display.begin(); Serial.begin(9600); while (! Serial); Serial.println("Speed 0 to 255"); Serial.println(F("Enter digits")); Serial.println(F("then hit enter key (\\n)")); }; void loop() { if ( receivedSerialString() ) { display.print(serialBuffer); Serial.print(F("Echo:\t")); Serial.println(serialBuffer); }; if (Serial.available()) { int speed = Serial.parseInt(); if (speed >= 0 && speed <= 255) { analogWrite(motorPin, speed); } } }; bool receivedSerialString() { static unsigned int i=0; while( Serial.available() ) { if ( i == BUFFER_SIZE-1) { serialBuffer[i] = '\0'; i = 0; Serial.println(F("Buffer full!")); return true; }; char c = Serial.read(); if ( c == '\n') { serialBuffer[i] = '\0'; i = 0; return true; } else { serialBuffer[i] = c; } i++; }; return false; }; |
It is good demonstration of why we need to use slightly complicated setup – if you decrease the speed of motor closer to 120, the LED will work!
---
Discussion
Although the project itself has lot of flaws – some DC motor can suck so much current that LED display will not initiate at all; it shows using the available components rather than running to buy new components. Also, you’ll feel the sluggishness of microcontroller as we actually not coded like Arduino traffic light with TM1637 LED Display timer. For these issues, we need to control the speed with a hardware control like rotary encoder, preferably use an H bridge or DC motor shield and capacitors and improve the code.
Tagged With arduino tm1637 motor controller , тахометр на ардуино датчик холла и led дисплей tm1637 , тахометр из ардуино alekca gavera , тахометр tm1637 , счетчик оборотов на ардуино датчик холла , самодельный тахометр на ардуино , ардуино тахометр , read speed with arduino on display , arduino тахометр , arduino TM1637:63: error: TM was not declared in this scope