Hello everyone i am making stm32 nucleo project in arduino ide. I used to use Ardunio and i can easily take output from any pin however now i am using stm32 nucleo l073 rz and i cant take ant output. I want to make simple thing. When i pressed the button if conditions are satisfied my water pump have to be work in any speed i dont want to control fan speed. This is my code block thanks. When i pressed button all things are worked except engine.
And there are many pins stm i cant find the proper one for engine
DATASHEET
<code>#include <LiquidCrystal.h>
#define LCD_RS PB8
#define LCD_EN PB9
#define LCD_D4 PA8
#define LCD_D5 PB10
#define LCD_D6 PB4
#define LCD_D7 PA10
#define trigPin PA9
#define echoPin PA7
#define buton1 PA9
#define motor PC4
LiquidCrystal lcd(LCD_RS, LCD_EN, LCD_D4, LCD_D5, LCD_D6, LCD_D7);
long duration, distance;
void setup() {
lcd.begin(16, 2);
lcd.print("SENSORED WATER");
lcd.setCursor(3, 1);
lcd.print("DISPENSER");
delay(2000);
lcd.clear();
pinMode(buton1, INPUT);
pinMode(motor, OUTPUT);
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void mainFunction(){
Serial.print("Button State: ");
Serial.println(digitalRead(buton1));
lcd.print("CHOOSE AMOUNT");
lcd.setCursor(0,1);
lcd.print("TALL VENTI GRANDE");
if(digitalRead(buton1) == 1 ){
if(distance <=5){
lcd.clear();
lcd.print("Filling started");
digitalWrite(motor, HIGH);
delay(5000);
digitalWrite(motor, LOW);
lcd.clear();
}
else{
lcd.clear();
lcd.print("BARDAK KOY LA!");
delay(2000);
lcd.clear();
}
}
}
void loop() {
mainFunction();
}
</code>
<code>#include <LiquidCrystal.h>
#define LCD_RS PB8
#define LCD_EN PB9
#define LCD_D4 PA8
#define LCD_D5 PB10
#define LCD_D6 PB4
#define LCD_D7 PA10
#define trigPin PA9
#define echoPin PA7
#define buton1 PA9
#define motor PC4
LiquidCrystal lcd(LCD_RS, LCD_EN, LCD_D4, LCD_D5, LCD_D6, LCD_D7);
long duration, distance;
void setup() {
lcd.begin(16, 2);
lcd.print("SENSORED WATER");
lcd.setCursor(3, 1);
lcd.print("DISPENSER");
delay(2000);
lcd.clear();
pinMode(buton1, INPUT);
pinMode(motor, OUTPUT);
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void mainFunction(){
Serial.print("Button State: ");
Serial.println(digitalRead(buton1));
lcd.print("CHOOSE AMOUNT");
lcd.setCursor(0,1);
lcd.print("TALL VENTI GRANDE");
if(digitalRead(buton1) == 1 ){
if(distance <=5){
lcd.clear();
lcd.print("Filling started");
digitalWrite(motor, HIGH);
delay(5000);
digitalWrite(motor, LOW);
lcd.clear();
}
else{
lcd.clear();
lcd.print("BARDAK KOY LA!");
delay(2000);
lcd.clear();
}
}
}
void loop() {
mainFunction();
}
</code>
#include <LiquidCrystal.h>
#define LCD_RS PB8
#define LCD_EN PB9
#define LCD_D4 PA8
#define LCD_D5 PB10
#define LCD_D6 PB4
#define LCD_D7 PA10
#define trigPin PA9
#define echoPin PA7
#define buton1 PA9
#define motor PC4
LiquidCrystal lcd(LCD_RS, LCD_EN, LCD_D4, LCD_D5, LCD_D6, LCD_D7);
long duration, distance;
void setup() {
lcd.begin(16, 2);
lcd.print("SENSORED WATER");
lcd.setCursor(3, 1);
lcd.print("DISPENSER");
delay(2000);
lcd.clear();
pinMode(buton1, INPUT);
pinMode(motor, OUTPUT);
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void mainFunction(){
Serial.print("Button State: ");
Serial.println(digitalRead(buton1));
lcd.print("CHOOSE AMOUNT");
lcd.setCursor(0,1);
lcd.print("TALL VENTI GRANDE");
if(digitalRead(buton1) == 1 ){
if(distance <=5){
lcd.clear();
lcd.print("Filling started");
digitalWrite(motor, HIGH);
delay(5000);
digitalWrite(motor, LOW);
lcd.clear();
}
else{
lcd.clear();
lcd.print("BARDAK KOY LA!");
delay(2000);
lcd.clear();
}
}
}
void loop() {
mainFunction();
}
When i pressed button engine needs to be start.