Through various operations, you may come across characters which are not printable. After all, a char is an 8-bit number, and if you look at the ASCII table only the values from 32 to 127, or a total of 96 values out of 127 are printable (see http://facweb.cs.depaul.edu/sjost/it212/documents/ascii-pr.htm). ASCII uses only 7 digits, instead of 8.Thus, if you get a char output from a function, and wish to check if it is printable, then you can use the isPrintable() function of Arduino.SyntaxisPrintable(myChar)where myChar is the character being checked. This function returns a true if the character is printable.Examplevoid setup() { ... Read More
If you wish to disable interrupts (when executing some critical piece of code, especially one which should be completed within a given time period), you can do that with the help of the noInterrupts() function.Once your critical code has executed and you wish to re-enable the interrupts, you can do that using interrupts() function. Note that interrupts are enabled by default in Arduino, and therefore, calling interrupts() without an initial call to noInterrupts() is unnecessary.ExampleThe general structure of a code containing noInterrupts() and interrupts() is given below −void setup() { // put your setup code here, to run once: } ... Read More
We have seen that in order to attach interrupts to a source, we use the .attachInterrupt() function, with the required arguments.For example, for attaching the interrupts to a specific pin, we useattachInterrupt(digitalPinToInterrupt(pin), ISR, mode);In the same way, to detach the interrupt from a source, we can call the detachInterrupt() function. This will simply disable that particular interrupt. The recommended syntax for disabling pin interrupts is −detachInterrupt(digitalPinToInterrupt(pin))where pin is the pin number on which you wish to disable the interrupt.
In this tutorial, we will interface Arduino with a GNSS Receiver and obtain the current location. Any GNSS receiver generally uses UART for communication. We will be using the ublox Neo6M GNSS module for thisCircuit DiagramAs you can see, we connect Vcc to 5V, GND to GND, RX of the Neo 6M to pin 3 of Arduino Uno, and TX of Neo 6M to pin 4 of Arduino Uno.Required LibrariesTinyGPS library will be required for interfacing Arduino Uno with the OLED Display −Go to Tools → Manage Libraries, search for this library, and click Install.Code WalkthroughWe will walkthrough an example ... Read More
A DC Motor is the simplest kind of motor. It has two terminals or leads. When connected with a battery the motor will rotate, and if the connections are reversed, the motor will rotate in the opposite direction. If the voltage across the terminals is reduced, the motor speed will reduce accordingly.In this article, we will see how to interface a DC Motor with Arduino and control its speed. We won’t be looking at reversing the direction of the motor, as that will require an additional IC (an H-bridge). At the end of this article, I’ll provide links to some ... Read More
A stepper motor divides the full rotation into a number of discrete steps, ranging from as low as 12 to as high as 200 steps per revolution (corresponding to angles of 30 degrees per step to 1.8 degrees per step). While a DC motor rotates continuously, a stepper motor rotates discretely, in step angles.Circuit DiagramThe circuit diagram and the required components for both Unipolar and Bipolar stepper motors can be found here − https://www.arduino.cc/en/Tutorial/LibraryExamples/StepperOneRevolutionNote that the stepper motor is connected to pins 8-11 of Arduino Uno, via a Darlington Array (for unipolar stepper) or H-bridge (for bipolar stepper). The stepper ... Read More
A servo motor has a shaft that can be, using coded signals, positioned to specific angular positions. Luckily for us, we won’t have to understand the coded signals required to rotate the shaft to a specific angle. The Arduino Servo library does it for us.Circuit DiagramAs you can see, the Vcc of the Servo (typically red) is connected to 5V, GND (typically black) to GND, and the signal pin (white in the above image, typically white or yellow or orange) is connected to pin 9 of the Arduino.Code WalkthroughWe will be walking through an example code that comes in with ... Read More
When you delve into advanced firmware, you deal with a lot of registers, whose specific bits need to be set or cleared depending on your use case. Arduino has inbuild functions to do that.SyntaxbitSet(x, index)and, bitClear(x, index)Where x is the number whose bit has to be set/ cleared and index is the position of the bit (0 for least significant or right-most bit). This function makes changes in the number x in place, and also returns the updated value of x.Note that setting a bit means setting its value to 1, and clearing it means setting its value to 0.ExampleThe ... Read More
The constrain() function in Arduino helps to, as the name suggests, constrain a number between an upper bound and a lower bound.Syntaxconstrain(val, min, max)where, val is the number to be constrained, min is the lower bound value, and max is the upper bound valueIf val is less than min, this function will return min. If val is greater than max, this function will return max. As long as val is between min and max, this function will return val.ExampleThe following example illustrates the use of this function −void setup() { // put your setup code here, to run once: ... Read More
If you are a firmware developer, then shifting numbers, or registers by certain number of bits may be quite common for you. In Arduino as well, the same bit shift operators can be used, that are used in the C language, namely > for right shift.Syntaxx >> n or x > 1); Serial.println(x
Data Structure
Networking
RDBMS
Operating System
Java
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP