In acest articol vom vedea cum putem comanda un servomotor cu ajutorul placii de dezvoltare STM32F103C8 BluePill.
Servomotorul se alimenteaza la o tensiune de comanda de +5V iar terminalul de comanda va fi conectat la pinul PA0 al placii de dezvoltare.
In acest exemplu vom folosi si displayul folosit in articolul anterior pentru a afisa anumite informatii referitoare la unghiul servomotorului.
Sketchul folosit in acest exemplu este cel de mai jos:
#include<Servo.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
int servoPin = PA0;
Servo servo;
void setup() {
lcd.begin();
lcd.setCursor(0, 0);
lcd.print("electronicstore");
lcd.setCursor(13, 1);
lcd.print(".ro");
delay(3000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("STM32F103***");
lcd.setCursor(0, 1);
lcd.print("BluePill");
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("impreuna cu un");
lcd.setCursor(0, 1);
lcd.print("servomotor");
delay(2000);
servo.attach(servoPin);
}
void loop() {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Setare unghi");
lcd.setCursor(3, 1);
lcd.print("0 grade servo");
servo.write(0);
delay(3000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Setare unghi");
lcd.setCursor(3, 1);
lcd.print("180 grade servo");
servo.write(180);
delay(3000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Setare unghi");
lcd.setCursor(3, 1);
lcd.print("90 grade servo");
servo.write(90);
delay(3000);
}