In order to access any pin of your board in Arduino, you can simply reference the number of the pin as an integer. On the Arduino boards like Uno, the label is provided for all the I/O pins, and the same label can be used in the code.Thus, both the below expressions are valid −int pin1 = A0; int pin2 = 7;Once the pin number has been defined, depending on your use case, you may need to set the pin as either an input pin or an output pin. This is generally done in the setup (because it is a ... Read More
The general way of using third-party libraries in Arduino is to install them from Tools -> Manage Libraries. We already have a separate post to cover that. However, what if a library you are using for cannot be found in Tools -> Manage Libraries? After all, Manage Libraries only includes those libraries which are present in Arduino Library Manager −http://downloads.arduino.cc/libraries/library_index.jsonSo, how do we use a library not present in Arduino Library Manager? Let's use an example to understand.Consider the TinyGPSPlus library (https://github.com/mikalhart/TinyGPSPlus) which is not available in Arduino's Manage Libraries portal as on 17th March 2021.In order to use this ... Read More
What are interrupts?As the name suggests, interrupts are routines that interrupt the normal code flow. An interrupt routine contains a piece of code that the microcontroller on your board should execute whenever an event occurs. Take the air-conditioner example. Suppose it has the following temperature control settings: Switch off cooling whenever temperature reaches 18 degrees C. Now, there will be a temperature sensor that keeps measuring the temperature. Whenever it reports a temperature of 18 degrees Celsius, the normal code running on the AC microcontroller is interrupted, it executes the code to turn off cooling, and then the normal code ... Read More
In every language, generally, the first Hello World project is a simple program that prints "Hello World"! We will see what such a code would look like for Arduino. The below code will print "Hello World" on the screen every time your board is powered ON.Examplevoid setup() { Serial.begin(9600); Serial.print("Hello World!"); } void loop() { }However, this is not a very good choice of Hello World project for Arduino. We essentially use Arduino for firmware programming (in layperson terms, firmware is the permanent software inside any chip). Now, one characteristic of firmware is to do tasks repeatedly. That ... Read More
The for and while loops in Arduino follow the C language syntax.The syntax for the for loop is −Syntaxfor(iterator initialization; stop condition; increment instruction){ //Do something }Examplefor(int i = 0; i< 50; i++){ //Do something }Similarly, the syntax for the while loop is −Syntaxwhile(condition){ //Do something }Exampleint i = 0 while(i < 50){ //Do something i = i+1; }The following example will illustrate the working of for and while loops in an Arduino program.Examplevoid setup() { Serial.begin(9600); } void loop() { // put your main code here, to run repeatedly: int i ... Read More
The Arduino Code has a very simple structure. If you open a new project in the Arduino IDE, you will see the following template prepared for you −Examplevoid setup() { // put your setup code here, to run once: } void loop() { // put your main code here, to run repeatedly: }The comments here explain it well. The setup function contains code that will be executed once. This function is executed first when your board reboots. The loop function contains code that will run repeatedly. In other words, if you write 5 lines of code within loop, ... Read More
If you are familiar with the C language and would like to use the formatting options provided by C language in the Arduino print statements, then there's an easy way to do it. All you need to do is define a character array, and populate it using sprintf(). Within sprintf, you can use the C language formatting. Later, you can simply print out that buffer. The following example code demonstrates how this is done −Examplechar print_buf[100]; void setup() { Serial.begin(9600); } void loop() { // put your main code here, to run repeatedly: for(int i = 0; ... Read More
Suppose you have a code like the one below −Examplevoid setup() { Serial.begin(9600); } void loop() { // put your main code here, to run repeatedly: Serial.println(analogRead(A0)); }As you can see, it is continuously printing the results of ADC conversion on A0 pin. Such programs can fill up the Serial Terminal quickly, faster than your eyes can register. For such cases, you may want to simply stop the scrolling in the Serial Monitor. You can do that by unchecking the Autoscroll checkbox at the left bottom of the Serial Monitor Window.OutputOnce that is done, you can read ... Read More
In order to print a newline, you can either introduce the '' character in your text, or use Serial.println() instead of Serial.print()An example code is given below −Examplevoid setup() { // put your setup code here, to run once: Serial.begin(9600); Serial.println(); Serial.print("This is line1This is line2"); Serial.println("This is line3"); Serial.println("This is line4"); } void loop() { // put your main code here, to run repeatedly: }The Serial Monitor output for the above code is −OutputIn order to add a tab space, you can introduce '\t' in your code.An example code is ... Read More
Often some functions can output really long floating-point numbers, with several decimal digits. Several times, we are just interested in the first couple of decimal digits, and the remaining digits just reduce the readability and make the Serial Monitor window cluttered.In order to round of floating-point numbers when printing to the Serial Monitor, you can just add the number of decimal places required as the second argument to serial.print.An example is shown below −Examplevoid setup() { // put your setup code here, to run once: Serial.begin(9600); Serial.println("Printing decimals"); Serial.println(9.6745, 0); //This prints 10 Serial.println(9.6745, 1); ... Read More
Data Structure
Networking
RDBMS
Operating System
Java
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP