Archives for 

datasheet

SG90 Tower Pro Servo Datasheet

servo-for-arduino-sg90-tower-pro

servo-for-arduino-sg90-tower-pro

One type of electric motor is a servo. Servo motor is used to make mechanical robotic or automated devices. Servo work based on the frequency signal from the controller (such as a microcontroller or arduino).

SG90 Tower Pro servo motor can also be controlled by a ruspberry pi.

You can plug this SG90 Tower Pro Servo straight onto the raspberry pi GPIO pins 4,6,8 without some extra wires. Pin 8 on the raspberry pi is normally the UART Tx pin, so your SG90 Tower Pro servo will not work properly if you connect it without disabling the UART before running the main program, You can search the instructions for how to disabling the UART on pin 8 from google.

sg90 tower pro servo cable pin

sg90 tower pro servo cable pin

Each servo motor cables have different pin configurations. Tower Pro SG90 servo has a three-pin cable. Red cable is wired VCC. Black/brown cable is a ground cable. While the orange cable is a signal cable.

You can find the SG90 Tower Pro servo tutorial and arduino uno source code here.

ATMega8535 Schematic Diagram

avr-atmega8535-minimum-system-schematic-circuit

avr-atmega8535-minimum-system-schematic-circuit

AVR ATMega8535 is a very popular microcontroller.

In the recent years, ATMega8535 has been displaced by the other microcontroller with a more complete feature like ATMega32, ATMega16 or ATMega128. Even, when Arduino offers ease (in the used and programming), the conventional Microcontroller becoming obsolete.

However, some users are still loyal to use the conventional microcontroller. And if you want to learn about the basics of the microcontroller, then you have to learn from the conventional microcontroller. You have to create an electronic circuit by yourself. And you have to find out all about the components used. After you finish creating the electronic circuits, then you will understand how the microcontroller’s minimum system so that it able works. And you will understand how a microcontroller work,  before you start programming it.

Like other microcontroller, we need some electronic components so that it able to work.

Crystal,some resistor and capacitor for the clock and the reset button. And don’t forget to provide the supply (VCC and GND) on the microcontroller board. You can make the ATMega8535 schematic diagram with the EAGLE software like the exsample above.

HC-SR04 Ultrasonic Distance Sensor

hc-sr04-distance-sensor

hc-sr04-distance-sensor

HC-SR04 is one of a proximity sensor. This sensor is very cheap, so many developers that use these sensors to the system they developed.

HC-SR04 can measure distances with ultrasonic wave method. This sensor has two part which is important, namely the transmitter and receiver. The transmitter will throw ultrasonic waves and will be reflected by a particular object. This reflected wave will be captured by the receiver. The delivery time can be determined from the calculation of the transmitting and catching time.

hc-sr04 distance sensor for arduino

hc-sr04 distance sensor for arduino

HC-SR04 has a 4 pin connector: VCC, Trig (T), echo (R), GND. VCC is connected to the voltage of 5V, GND connected to Ground, Trig (T) is connected to the data pin microcontroller, and echo (R) is connected to the data microcontroller (different pin).

– Model: HC-SR04
– Color: Blue + Silver
– Working voltage : 5V(DC)
– Static current: Less than 2mA.
– Output signal: Electric frequency signal, high level 5V, low level 0V.
– Sensor angle: Not more than 15 degrees.
– Detection distance: 2cm~450cm.
– High precision: Up to 3mm
– Mode of connection: VCC / trig(T) / echo(R) / GND
– Module Working Principle:
– Adopt IO trigger through supplying at least 10us sequence of high level signal
– The module automatically send eight 40khz square wave and automatically detect whether receive the returning pulse signal
– If there is signals returning, through outputting high level and the time of high level continuing is the time of that from the ultrasonic transmitting to receiving

 

hc-sr04 distance sensor and arduino wire

hc-sr04 distance sensor and arduino wire

For example, you can connect Trig (T) pin and echo (R) pin on the Arduino Uno as shown above. In the picture can be seen that Trig is connected to the pin number 11 and the echo is connected to the pin number 12. For source code and the programming tutorial you can read here.

Source Code for Arduino LCD Keypad Shield

lcd keypad shield - datasheet

lcd keypad shield – datasheet

Here is the Arduino programming tutorial for LCD keypad shield. Arduino LCD keypad shield used is described in this article.

How to install LCD keypad shield on arduino uno simply by plugging in the arduino board. This tutorial will explain 3 arduino program. The first source code explains how to display characters on the LCD shield. Source code number two explains how to read keys on the keypad shield. And source code number three is the incorporation of lcd shield source code and keypad shield source code.

Source code to display characters on the LCD

//Sample using LiquidCrystal library
#include <LiquidCrystal.h>

// select the pins used on the LCD panel
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
void setup()
{
lcd.begin(16, 2); // start the library
lcd.setCursor(0,0);
lcd.print(“avrchip.com”); // print a simple message
}

void loop()
{
lcd.setCursor(9,1); // move cursor to second line “1” and 9 spaces over
lcd.print(millis()/1000); // display seconds elapsed since power-up

}

 

 

Source code to read keys on keypad shield

//Sample using LiquidCrystal library
#include <LiquidCrystal.h>
// define some values used by the panel and buttons
int button = 0;
int adc_key_in = 0;
#define btnRIGHT 0
#define btnUP 1
#define btnDOWN 2
#define btnLEFT 3
#define btnSELECT 4
#define btnNONE 5

// read the buttons
int read_LCD_buttons()
{
adc_key_in = analogRead(0); // read the value from the sensor
// my buttons when read are centered at these valies: 0, 144, 329, 504, 741
// we add approx 50 to those values and check to see if we are close
if (adc_key_in > 1000) return btnNONE; // We make this the 1st option for speed reasons since it will be the most likely result
// For V1.1 us this threshold
if (adc_key_in < 50) return btnRIGHT;
if (adc_key_in < 250) return btnUP;
if (adc_key_in < 450) return btnDOWN;
if (adc_key_in < 650) return btnLEFT;
if (adc_key_in < 850) return btnSELECT;

// For V1.0 comment the other threshold and use the one below:
/*
if (adc_key_in < 50) return btnRIGHT;
if (adc_key_in < 195) return btnUP;
if (adc_key_in < 380) return btnDOWN;
if (adc_key_in < 555) return btnLEFT;
if (adc_key_in < 790) return btnSELECT;
*/
return btnNONE; // when all others fail, return this…
}

void setup()
{

}

void loop()
{
button = read_LCD_buttons(); // read the buttons
}

 

LCD keypad shield source code

//Sample using LiquidCrystal library
#include <LiquidCrystal.h>

// select the pins used on the LCD panel
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

// define some values used by the panel and buttons
int lcd_key = 0;
int adc_key_in = 0;
#define btnRIGHT 0
#define btnUP 1
#define btnDOWN 2
#define btnLEFT 3
#define btnSELECT 4
#define btnNONE 5

// read the buttons
int read_LCD_buttons()
{
adc_key_in = analogRead(0); // read the value from the sensor
// my buttons when read are centered at these valies: 0, 144, 329, 504, 741
// we add approx 50 to those values and check to see if we are close
if (adc_key_in > 1000) return btnNONE; // We make this the 1st option for speed reasons since it will be the most likely result
// For V1.1 us this threshold
if (adc_key_in < 50) return btnRIGHT;
if (adc_key_in < 250) return btnUP;
if (adc_key_in < 450) return btnDOWN;
if (adc_key_in < 650) return btnLEFT;
if (adc_key_in < 850) return btnSELECT;

// For V1.0 comment the other threshold and use the one below:
/*
if (adc_key_in < 50) return btnRIGHT;
if (adc_key_in < 195) return btnUP;
if (adc_key_in < 380) return btnDOWN;
if (adc_key_in < 555) return btnLEFT;
if (adc_key_in < 790) return btnSELECT;
*/
return btnNONE; // when all others fail, return this…
}

void setup()
{
lcd.begin(16, 2); // start the library
lcd.setCursor(0,0);
lcd.print(“Push the buttons”); // print a simple message
}

void loop()
{
lcd.setCursor(9,1); // move cursor to second line “1” and 9 spaces over
lcd.print(millis()/1000); // display seconds elapsed since power-up
lcd.setCursor(0,1); // move to the begining of the second line
lcd_key = read_LCD_buttons(); // read the buttons

switch (lcd_key) // depending on which button was pushed, we perform an action
{
case btnRIGHT:
{
lcd.print(“RIGHT “);
break;
}
case btnLEFT:
{
lcd.print(“LEFT “);
break;
}
case btnUP:
{
lcd.print(“UP “);
break;
}
case btnDOWN:
{
lcd.print(“DOWN “);
break;
}
case btnSELECT:
{
lcd.print(“SELECT”);
break;
}
case btnNONE:
{
lcd.print(“NONE “);
break;
}
}

}

Arduino Nano Datasheet and Tutorial

arduino-nano-configuration

arduino-nano-configuration

Arduino Nano is a function module which is very small but has a lot of advantages. The shape is very small so it is suitable to make a project that looks small. Arduino Nano is very special because of this support with breadboards. You can plug arduino and other electronic components in one breadborad. In the Arduino Nano 2.x version, still used avr ATmega168 microcontroller while the Arduino Nano 3.x version already used avr ATmega328 microcontroller.

arduino nano tutorial

arduino nano tutorial

Arduino Nano has features and functions similar to arduino Duemilanove. But Arduino Nano in different packaging. Arduino nano does not have a DC jack so that its power supplied through mini-B USB port or directly connect to the VCC pin and GND. Arduino Nano can be supplied with a voltage of 6-20V power source via USB mini-B port. Or you can provide a voltage of 5V on pin 30 (this voltage will not be adjusted by the regulator, so make sure you provide 5V voltage)

arduino nano pin configuration

arduino nano pin configuration

Arduino Nano Specifications:

MicrocontrollerAtmel ATmega168 or ATmega328
Operating Voltage (logic level)5 V
Input Voltage (recommended)7-12 V
Input Voltage (limits)6-20 V
Digital I/O Pins14 (of which 6 provide PWM output)
Analog Input Pins8
DC Current per I/O Pin40 mA
Flash Memory16 KB (ATmega168) or 32 KB (ATmega328) of which 2 KB used by bootloader
SRAM1 KB (ATmega168) or 2 KB (ATmega328)
EEPROM512 bytes (ATmega168) or 1 KB (ATmega328)
Clock Speed16 MHz
Dimensions0.73″ x 1.70″
Length45 mm
Width18 mm
Weigth5 g

 

 

arduino nano datasheet

arduino nano datasheet

In some cases, Arduino Nano has features that are more complete than arduino uno. Arduino Nano has 8 channel ADC (Analog to Digital Converter) while the Arduino Uno only has 6 channels. Through the RX and TX pins you can communicate serially with other devices. According datasheet ATmega328 AVR microcontroller, Arduino Nano has 2 pin interrupt, namely int0 and int1.

arduino nano pin input output configuration

arduino nano pin input output configuration

Overall, Arduino nano has 30 pins. The 8 pin of them (19-26 pin) are Analog pins (ADC). While the other 14 pins are Digital pins (Please see the picture above to see the position of digital and analog pins).

arduino nano connected to computer

arduino nano connected to computer

You have to write the source code for arduino nano on Arduino IDE sofftware. Then, you can download the program on an Arduino Nano using a USB-B cable.