Question
Hello, this is my project video. https://www.youtube.com/watch?v=nOw5-IvPDgk .Our microprocessor teacher gave us a project assignment that we can do with NUCLEO-F401RE. Most projects made by
Hello, this is my project video. https://www.youtube.com/watch?v=nOw5-IvPDgk .Our microprocessor teacher gave us a project assignment that we can do with "NUCLEO-F401RE". Most projects made by converting projects made with Arduino become projects. I also want to make smart staircase lighting. I need code help for this. I asked for code help from here. This project has been realized with Arduino. https://github.com/ckaplan831/AKILI-MERD-VEN-KOD-VE-BA-LANTI-SEMASI- . I asked this question as I was having trouble translating it to the Cube IDE code. Please I need the Cube IDE code. The Arduino code of my project is as follows.
const int pir_pin_up = 12; const int pir_pin_down = 13; int pir_up_deger; int pir_down_deger;
int merdiven_led_up[11] = {11, 10, 9, 8, 7, 6, 5, 4, 3, 2, A5,}; // string int merdiven_led_down[11] = {A5, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,}; // reverse string
int y = 400; // light on interval int b = 5000; // light off interval after full lighting int s = 800; // light off interval
void setup() { pinMode(pir_pin_up, INPUT); // stteki pir sensor pini giri tanmland pinMode(pir_pin_down, INPUT); // alttaki pir sensor pini giri tanmland
for (int i = 0; i < 12; i++) { pinMode(merdiven_led_up[i], OUTPUT); //dizideki tm ledler k olarak ayarland pinMode(merdiven_led_down[i], OUTPUT); //dizideki tm ledler k olarak ayarland }
}
void loop() { pir_up_deger = digitalRead(pir_pin_up); //st pir pin deeri pir_up_deger e atand pir_down_deger = digitalRead(pir_pin_down); //alt pir pin deeri pir_down_deger e atand
if (pir_up_deger == HIGH) // eer st pir den sinyal gelirse { stairs_from_up(); // bu fonksiyonu altr }
if (pir_down_deger == HIGH) // eer alt pir den sinyal gelirse { stairs_from_down(); // bu fonksiyonu altr }
else // bu artlardan hibiri olmazsa { kapat(); // bu fonksiyonu altr }
} ///////// fonksiyon tanmlar \\\\\\\\\\
void stairs_from_up() // stten merdivene ayak basldnda alacak fonksiyon { for (int i = 0; i < 12; i++) { digitalWrite(merdiven_led_up[i], HIGH); delay(y); } delay(b); for (int i = 0; i < 12; i++) { digitalWrite(merdiven_led_up[i], LOW); delay(s); }
}
void stairs_from_down() // alltan merdivene ayak basldnda alacak fonksiyon { for (int i = 0; i < 12; i++) { digitalWrite(merdiven_led_down[i], HIGH); delay(y); } delay(b); for (int i = 0; i < 12; i++) { digitalWrite(merdiven_led_down[i], LOW); delay(s); }
}
void kapat() // if komut artlarnn olumad durumda alacak fonksiyon { for (int i = 0; i < 12; i++) { digitalWrite(merdiven_led_up[i], LOW); digitalWrite(merdiven_led_down[i], LOW);
} }
Here are the Cube IDE codes that I know for this project.
#include
#include "stm32f4xx_hal.h"
#define LED_PIN GPIO_PIN_5
#define LED_PORT GPIOC
int main(void)
{
// Initialize LED
LED_PORT->MODER |= (1 << (LED_PIN * 2));
while (1)
{
// Turn LED on
LED_PORT->ODR |= LED_PIN;
// Delay for 1 second
HAL_Delay(1000);
// Turn LED off
LED_PORT->ODR &= ~LED_PIN;
// Delay for 1 second
HAL_Delay(1000);
}
}
This code will blink an LED connected to pin 5 of the GPIOC port on the NUCLEO-F401RE microcontroller. To use this code, you will need to include the necessary libraries (such as "stm32f4xx_hal.h") and configure the LED_PIN and LED_PORT constants to match your hardware setup.
To implement more advanced functionality for your smart staircase lighting system, you will need to add additional code to handle things like sensor input, communication with other devices, and so on. However, this basic example should give you an idea of how to control an LED using the NUCLEO-F401RE microcontroller and the Cube IDE.
and
#include "mbed.h"
// Define the pins for the infrared distance sensor
#define TRIGGER_PIN PB_10
#define ECHO_PIN PB_4
// Define the pin for the LED strip
#define LED_STRIP_PIN PB_3
// Create an instance of the DigitalOut class for the LED strip
DigitalOut ledStrip(LED_STRIP_PIN);
// Create an instance of the DigitalOut class for the trigger pin
DigitalOut trigger(TRIGGER_PIN);
// Create an instance of the DigitalIn class for the echo pin
DigitalIn echo(ECHO_PIN);
// Create a timer to measure the duration of the pulse
Timer pulseTimer;
int main() {
// Set the trigger pin to low initially
trigger = 0;
// Set the LED strip to off initially
ledStrip = 0;
while(1) {
// Send a pulse to the infrared distance sensor by setting the trigger pin to high for 10 microseconds
trigger = 1;
wait_us(10);
trigger = 0;
// Start the timer
pulseTimer.reset();
pulseTimer.start();
// Wait for the echo pin to go high, indicating that the pulse has been received
while(echo == 0);
// Stop the timer
pulseTimer.stop();
// Calculate the distance based on the duration of the pulse
float distance = pulseTimer.read() * 17150;
// If the distance is less than 50 cm, turn on the LED strip
if(distance < 50) {
ledStrip = 1;
} else {
ledStrip = 0;
}
// Wait for 500 milliseconds before sending the next pulse
wait(0.5);
}
}
I don't know how to adapt all my variables to the cube ide program and I need your help.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started