Hello everyone, I am Liang Xu.
Arduino is just a toy, learning Arduino is a waste of time!
There are many such opinions online, and some people have even developed a hierarchy of development boards, feeling a sense of superiority just because they can work with STM32 or ARM boards, looking down on those who use Arduino.
However, from my observation, those who hold such opinions may not even fully understand how to use Arduino.
In my view, if you want to learn embedded systems well, you not only have to play with Arduino, but you also need to dive deep into it!
Based on my years of experience with Arduino, I believe there are two words that summarize why everyone should use Arduino: simplicity!
For example, configuring an IO port in Arduino only requires a simple pinMode()
function.
But for the same requirement, STM32 requires so much more code!
void MX_GPIO_Init(void)
{
// Define GPIO structure variable
GPIO_InitTypeDef GPIO_InitStruct = {0};
// Enable bus clock
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOA_CLK_ENABLE();
/* Configure GPIO pin Output Level */
HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET);
// Configure the values of the GPIO structure variable
/* Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = LED_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_MEDIUM;
HAL_GPIO_Init(LED_GPIO_Port, &GPIO_InitStruct);
}
So much code can easily scare beginners!
What do beginners need? They need something simple and easy to get started with!
And Arduino meets these conditions; it’s simple enough that beginners can quickly see results.
For example, the classic LED blinking example can be completed with just 5 lines of code in Arduino, and once uploaded, you can immediately see the code’s effect.
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(D4, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(D4, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(D4, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
This sense of achievement that can be gained in a short time is crucial for beginners!
However, doing the same example on the STM32 platform, just think about how much time it takes to set up a template project? How many of you still couldn’t get the LED to light up after two days?
To complete an embedded project, you need to master not just hardware knowledge.
For instance, in this small weather forecast project, can you guess what knowledge is applied here?
-
First, the weather data is obtained from the HeWeather platform, so you need to know how to connect to the internet;
-
Secondly, once connected to the internet, you need to know how to request data from the HeWeather platform, which involves https requests;
-
Then, the response is a Json package, and you need to know how to parse this Json package;
-
Next, you need to display the parsed data on an OLED screen, so you need to understand OLED-related knowledge, such as how to light it up and display text or images;
-
Furthermore, if you use a temperature and humidity sensor to get the current environment’s temperature and humidity, you also need to know how to use that sensor.
Have you noticed that all these things mentioned just now have already gone beyond the scope of Arduino?
If you want to master embedded systems, then you must understand networking, https, Json, OLED, and various sensors, and this knowledge is not platform-dependent.
However, because Arduino is simple enough, you can see results with just a few lines of code, allowing you to focus on understanding the principles. Plus, after completing a few such projects, your skills will greatly improve.
Therefore, I will be updating a series of Arduino tutorials on my account to help everyone quickly master Arduino and embedded knowledge points to enter the field.
I have also prepared a text version of the tutorial. If it’s inconvenient for you to watch videos, you can read the document, which I’ve written to be very easy to understand, and it’s illustrated for a more comfortable reading experience.
The document is also ready for you, just reply “123” in the public account backend to get it for free, along with a high-paying embedded learning roadmap!
▲ Reply “123“, get it for free▲
I have turned this script into a video and posted it on Bilibili, but I was criticized heavily, there are so many trolls!
I want to emphasize that companies will not use Arduino to make products; Arduino is for learning, especially suitable for beginners with no foundation.
Thank you for your continued attention. I will continue to provide embedded Linux content, and I will also make videos. You can also follow my Bilibili: Programmer Liang Xu for a better viewing experience.
Leave a Comment
Your email address will not be published. Required fields are marked *