Archives for 

uno

Arduino Bluetooth Shield Source Code and Tutorial

arduino bluetooth shield master to slave

arduino bluetooth shield master to slave

 

This is a tutorial on how to use Arduino Bluetooth shield.

To use this bluetooth shield, you have to plug it on the Arduino Uno board as shown in the image above.

This Bluetooth shield can be programmed to be a master or slave. If Bluetooth shield is programmed into the master, the bluetooth shield will make ‘a name’ for bluetooth connectivity.

In addition, it will set the baudrate and will be looking for signals bluetooth enabled. After finding an active bluetooth signal, This bluetooth shield will try to make the process of “pairing” and if the appropriate settings, then it will be connected.

Here is an example program “Master Bluetooth Shield”

#include <SoftwareSerial.h> // Software Serial Port

#define RxD 6
#define TxD 7
#define DEBUG_ENABLED 1

String retSymb = “+RTINQ=”; // start symble when there’s any return
String slaveName = “;SeeedBTSlave”; // caution that ‘;’must be included, and make sure the slave name is right.
int nameIndex = 0;
int addrIndex = 0;

String recvBuf;
String slaveAddr;

String connectCmd = “\r\n+CONN=”;

SoftwareSerial blueToothSerial(RxD,TxD);

void setup()
{
Serial.begin(9600);
pinMode(RxD, INPUT);
pinMode(TxD, OUTPUT);
setupBlueToothConnection();
//wait 1s and flush the serial buffer
delay(1000);
Serial.flush();
blueToothSerial.flush();
}

void loop()
{
char recvChar;
while(1)
{
if(blueToothSerial.available()) //check if there’s any data sent from the remote bluetooth shield
{
recvChar = blueToothSerial.read();
Serial.print(recvChar);
}
if(Serial.available()) //check if there’s any data sent from the local serial terminal, you can add the other applications here
{
recvChar = Serial.read();
blueToothSerial.print(recvChar);
}
}
}

void setupBlueToothConnection()
{
blueToothSerial.begin(38400); // Set BluetoothBee BaudRate to default baud rate 38400
blueToothSerial.print(“\r\n+STWMOD=1\r\n”); // set the bluetooth work in master mode
blueToothSerial.print(“\r\n+STNA=SeeedBTMaster\r\n”); // set the bluetooth name as “SeeedBTMaster”
blueToothSerial.print(“\r\n+STAUTO=0\r\n”); // Auto-connection is forbidden here
delay(2000); // This delay is required.
blueToothSerial.flush();
blueToothSerial.print(“\r\n+INQ=1\r\n”); //make the master inquire
Serial.println(“Master is inquiring!”);
delay(2000); // This delay is required.

//find the target slave
char recvChar;
while(1)
{
if(blueToothSerial.available())
{
recvChar = blueToothSerial.read();
recvBuf += recvChar;
nameIndex = recvBuf.indexOf(slaveName); //get the position of slave name

//nameIndex -= 1;
//decrease the ‘;’ in front of the slave name, to get the position of the end of the slave address
if ( nameIndex != -1 )
{
//Serial.print(recvBuf);
addrIndex = (recvBuf.indexOf(retSymb,(nameIndex – retSymb.length()- 18) ) + retSymb.length());//get the start position of slave address
slaveAddr = recvBuf.substring(addrIndex, nameIndex);//get the string of slave address
break;
}
}
}

//form the full connection command
connectCmd += slaveAddr;
connectCmd += “\r\n”;
int connectOK = 0;
Serial.print(“Connecting to slave:”);
Serial.print(slaveAddr);
Serial.println(slaveName);
//connecting the slave till they are connected
do
{
blueToothSerial.print(connectCmd);//send connection command
recvBuf = “”;
while(1)
{
if(blueToothSerial.available()){
recvChar = blueToothSerial.read();
recvBuf += recvChar;
if(recvBuf.indexOf(“CONNECT:OK”) != -1)
{
connectOK = 1;
Serial.println(“Connected!”);
blueToothSerial.print(“Connected!”);
break;
}
else if(recvBuf.indexOf(“CONNECT:FAIL”) != -1)
{
Serial.println(“Connect again!”);
break;
}
}
}
}while(0 == connectOK);
}

arduino bluetooth shield slave to computer master tutorial

arduino bluetooth shield slave to computer master tutorial

If you set it as a slave bluetooth shield, then this will be passive. This bluetooth shield will set the baudrate and put a name of bluetooth connectivity.

After that, it will wait until there is a device that finding and trying to ‘pairing itself’. If the settings are appropriate, then both bluetooth device will be connected.

Here is an example program “Slave Bluetooth Shield”

#include <SoftwareSerial.h> //Software Serial Port
#define RxD 6
#define TxD 7

#define DEBUG_ENABLED 1

SoftwareSerial blueToothSerial(RxD,TxD);

void setup()
{
Serial.begin(9600);
pinMode(RxD, INPUT);
pinMode(TxD, OUTPUT);
setupBlueToothConnection();

}

void loop()
{
char recvChar;
while(1)
{
if(blueToothSerial.available())
{//check if there’s any data sent from the remote bluetooth shield
recvChar = blueToothSerial.read();
Serial.print(recvChar);
}
if(Serial.available())
{//check if there’s any data sent from the local serial terminal, you can add the other applications here
recvChar = Serial.read();
blueToothSerial.print(recvChar);
}
}
}

void setupBlueToothConnection()
{
blueToothSerial.begin(38400); // Set BluetoothBee BaudRate to default baud rate 38400
blueToothSerial.print(“\r\n+STWMOD=0\r\n”); // set the bluetooth work in slave mode
blueToothSerial.print(“\r\n+STNA=SeeedBTSlave\r\n”); // set the bluetooth name as “SeeedBTSlave”
blueToothSerial.print(“\r\n+STOAUT=1\r\n”); // Permit Paired device to connect me
blueToothSerial.print(“\r\n+STAUTO=0\r\n”); // Auto-connection should be forbidden here
delay(2000); // This delay is required.
blueToothSerial.print(“\r\n+INQ=1\r\n”); // make the slave bluetooth inquirable
Serial.println(“The slave bluetooth is inquirable!”);
delay(2000); // This delay is required.
blueToothSerial.flush();
}

The Easiest Arduino Uno Bluetooth Shield

arduino bluetooth seeedstudio shield

arduino bluetooth seeedstudio shield

The easiest Arduino Uno Bluetooth shield for your Arduino Uno project is SeeedStudio Bluetooth Shield. Simply by plugging the Bluetooth Shield on your Arduino Uno and it has been ready for use. SeeedStudio bluetooth shield work using serial communication. You can choose two pins from Adruino Uno (from pin D0 to D7) to be used as Software Serial Port – Transmite Data (TX) and Receive Data (RX). You can choose RX and TX pins by sliding ‘jumper pin’ on the port that you want (D0 to D7).

arduino bluetooth seeedstudio shield tutorial

arduino bluetooth seeedstudio shield tutorial

 

Arduino Uno Bluetooth Shield ( SeeedStudio Bluetooth Shield ) Features :

  1. Input Voltage: 3.3V
  2. Baudrate: 9600, 19200, 38400, 57600, 115200, 230400, 460800
  3. Seeeduino/Arduino compatible
  4. Up to10m communication distance in house without obstacle
  5. UART interface (TTL) with programmable baud rate (SPP firmware installed)
  6. Default Baud rate: 38400, Data bits: 8, Stop bit: 1, Parity: No parity
  7. Default PINCODE:”0000”
  8. A full set of configuration commands
  9. On board PCB Antenna
  10. FCC Part 15 Certificated

 

Arduino uno bluetooth shield

Arduino uno bluetooth shield

You can still use all the Arduino pin bluetooth although this shield cover Arduino Uno board.  This Bluetooth shield provides 2 grove connectors (digital and analog) for you to install the grove module.

Pad TypeDescription
PIO1Status instruction port of Bluetooth module can be read by Arduino A1 port: low-disconnected, high-connected.
BT_RXUART Data input of Bluetooth module.
BT_TXUART Data output Bluetooth module.
Two Grove connectorsOne is Digital (D8 and D9), the other is I2C/Analog (A4 and A5).

 

arduino bluetooth shield master to slave

arduino bluetooth shield master to slave

You can set this shield bluetooth become a master or slave. For a tutorial and sample programs (source code program) you can also read on this blog.

arduino bluetooth shield slave to computer master tutorial

arduino bluetooth shield slave to computer master tutorial

You can connect this bluetooth shield with the other one (2 different bluetooth shield).

You can also connect a Bluetooth shield with a laptop or computer.

You can also connect a Bluetooth shield with the smartphone.

arduino bluetooth shield slave to master tutorial

arduino bluetooth shield slave to master tutorial

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.

Arduino Uno R3 the Computing Platform

Arduino is a trademark that manufactures microcontroller development board. Arduino UNO is one type of development board produced by Arduino, and the new series is arduino uno R3.

arduino-uno-r3-board

arduino-uno-r3-board

Arduino UNO R3 is a computing platform that is very easy to use. Arduino UNO R3 is ATmega328P microcontroller based. According datasheet from ATmega328P, Arduino UNO R3 has a 14 pin digital input / output, and 6 of them can be used as PWM output pin. Arduino UNO R3 also has 6 analog inputs, has a 16MHz crystal, a USB port which can be used to download the program, a power jack, a reset button, and ICSP header.

how to optimized the arduino uno r3

how to optimized the arduino uno r3

 

Arduino features shown in the diagram above.

Arduino UNO R3 provide + 5V, 3.3V and GND pin as a power source if needed by sensors or other devices. Users can also use the SDA and SCL pins on the pin number 27 and 28. Features ADC (Analog to Digital Converter) can be used on 23-28 pins. While the interrupt feature can be used on pin number 4 and 5 (pin number 4 is int0 and pin number 5 is int1). Serial communication (RX and TX) is provided on pin numbers 2 and 3.

arduino uno r3 layout diagram

arduino uno r3 layout diagram

 

Arduino Uno R3 design is very simple to facilitate the user in using it. On the left we will see an electric jack socket. Power jack is compatible to the power supply voltage 9-12V. In addition, we will see the USB port to communicate with a computer, either in downloading a program or data transfer via USB. As an indicator, arduino provides 4 LEDs. 1 for the power indicator, two LED indicators for serial communication (RX and TX), and 1 other LED connected at pin 13.

 

arduino uno r3 microcontroller pin mapping

arduino uno r3 microcontroller pin mapping

 

The ATmega328 microcontroller datasheet shows the various features that can be used on the Arduino UNO R3.

 

arduino uno r3 board layout

arduino uno r3 board layout