PWM over serial monitor

Hello everyone

we already have some products in our Portofolio that make it possible to operate step or DC motors with multiple channels on the Arduino. Today I want to show a 12V engine on an Arduino. In principle, any consumer controlled via PWM can be connected, such as an LED. The speed or brightness can be controlled via the serial monitor. However, it is also possible to implement the project without a library. A major problem with manual implementation is the load on the controller, which is why we would like to introduce this library to you today:

https://github.com/HobbyComponents/HCMotor

These (and other motor libraries) offer the possibility to run the motor "in the background", i.e. not to block the controller so that our UN can do other tasks.

We have already shown how to install the library in many blog posts.

In order to have sufficient power for our fan and not to damage the UN, we use the MOS module with IRF520.

The wiring:

The three pins of the MOS module are connected to the UN, power source and the fan to the screw terminals:

Un MOS module Power supply Consumers
5v Vcc
Gnd Gnd
D6 Sig
Vin 12v
Gnd Gnd
V+ +
V- -

 

Here is the code:

 

#include "HCMotor.h"
#define MOTOR_PIN 6 PWM Pin    HCMotor HCMotor;
 
Void Setup(){   Serial.Begin(9600);   HCMotor.Init();   HCMotor.Attach(0, DCMOTOR, MOTOR_PIN);   HCMotor.DutyCycle(0, 100); minimum 0 and maximum speed 100
}    Void Loop(){      while(Serial.available() > 0){          Int Value = Serial.Readstring().toInt();     Int motorSpeed = map(Value, 0, 1024, 0, 100);     HCMotor.Ontime(0, motorSpeed);   }
}

 

Have fun experimenting!

For arduinoProjects for beginners

4 comments

Moritz

Moritz

Hallo,
ich denke es ist immer schwierig das richtige Niveau für die Artikel zu finden. So wie ich das verstanden habe will AZ mit den Artikeln die Leute für Mikrocontroller begeistern und zur Umsetzung eigener Projekte anregen. Alle Sachen die ich hier im Blog gefunden habe funktionierten auf Anhieb, das ist recht selten. Interne Timer und Register sind nicht besonders anfängerfreundlich. Sieht einfach aus, ist es aber nicht….

Matthias Jacobsen

Matthias Jacobsen

Moin,
Prinzipiell finde ich ihren Beitrag sehr gut.
Erwähnenswert wäre, dass die Benutzung des internen Timermoduls. Dieser lässt sich als pwm Generator parametrisieren und dies benötigt auch nur ca. 3 Zeilen Code.
Damit läuft der pwm Generator im Hintergrund und blockiert die Main nicht.

Es ist zwar schön wenn einem Librarys die Arbeit abnehmen und Mann nicht weiß was diese tun.

Gruß
Matthias

Ljubomir Madzarac

Ljubomir Madzarac

Monitor ??? Motor :-)

Norbert

Norbert

Vielen Dank das Du dein Wissen mit uns teilst.
Jedoch wären im Programm einige Erklärungen hilfreich, da ich trotz ein wenig
Programmierkenntnis da nicht so viel verstehe.
Wo ist denn der Wert der den Motor (soll warscheinlich der erwähnte Lüfter sein) Steuert?

Ihr Programmierprofis setzen häufig zuviel als selbstverständlich voraus, und hängt dann die lernwilligen ab, schade.

Leave a comment

All comments are moderated before being published

Recommended blog posts

  1. Install ESP32 now from the board manager
  2. Lüftersteuerung Raspberry Pi
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1
  4. ESP32 - das Multitalent
  5. OTA - Over the Air - ESP programming via WLAN