Arduino Vs Raspberry Pi

Hello friends, I hope you all are fine and enjoying your lives. Today, I am going to share a comparison titled Arduino Vs Raspberry Pi. Actually, I have been receiving a lot of emails and comments from new engineering students that "we are new in embedded and we want to start our project so please tell us which one is better Arduino or Raspberry Pi?" So, I thought to write a post on Arduino Vs Raspberry Pi and in this post, I am going to make a detailed comparison between the two and will let you know, which one you should use in your project and why?

So, I hope that you are all aware of or at least have heard about these two boards, which are Arduino and Raspberry Pi. If you haven't heard yet then you must have a look at Arduino Official Site and Raspberry Pi Official Site. They will give you a basic overview of what these boards are. Anyhow, I am going to start it from the very basics so that you guys won't get into much trouble. So, let's get started with Arduino Vs Raspberry Pi:

Where To Buy?
No.ComponentsDistributorLink To Buy
1Arduino Mega 2560AmazonBuy Now
2Arduino NanoAmazonBuy Now
3Arduino Pro MiniAmazonBuy Now
4Arduino UnoAmazonBuy Now
5Raspberry Pi 3AmazonBuy Now
6Raspberry Pi 4AmazonBuy Now
7Raspberry Pi PicoAmazonBuy Now
8Raspberry Pi ZeroAmazonBuy Now

Arduino Vs Raspberry Pi

I have created few points below and in each of these points, I have made the difference between these two boards. I have also mentioned their strengths and weaknesses and which one to use. Obviously, they both have their own importance so we can't say that one is better than the other. Instead, we are making a comparison between the two and then you will get a clear idea of which one you should use for your project. The selection of your controller board actually depends entirely on the nature of your project. Am I getting far :O don't worry if it's more to digest about Arduino Uno R3 Vs Raspberry PI 3, I am explaining them below in detail. :D

1. History

Arduino:

  • The idea of Arduino was first presented by Massimo Banzi in Italy. That's why it's written Made in Italy on each of these boards. :)
  • Banzi was a teacher at Interaction Design Institute Ivrea and the reason for designing these boards was to help his students by giving them an easy-to-use platform.
  • So that, students don't waste much time over soldering etc and spend more time in designing the algorithms.
Raspberry Pi:
  • Raspberry Pi was first invented by Eben Upton in the United Kingdom.
  • He was also a teacher and he has the same reason for developing these boards.
  • He also wanted to help his students so that they learn more out of it.
  • Upton was a Professor at the University of Cambridge.
Obviously, they both have co-founders, who have helped them a lot in bringing these ideas to existence. So, let's move on to the next step of this Arduino Vs Raspberry Pi comparison.

2. Nature of Arduino & Raspberry Pi

Arduino:
  • The Arduino boards are actually Microcontrollers boards but in a very easy-to-use form.
  • Have you ever worked on PIC Microcontroller, Atmel or 8051 Microcontroller?
  • If you have worked on standalone microcontrollers, you must be aware of Microcontroller basic circuit, which includes crystal oscillator and pull-up resistors, capacitors etc.
  • Moreover, you also need the programmer/burner hardware using which you upload your code into these microcontrollers.
  • But in Arduino, you don't need to use any of these. Arduino comes with a built-in programmer and an onboard basic circuit for powering up the microcontroller.
  • So, what you need to do is simply plug Arduino board and start testing your code.
  • So, in simple words, Arduino is nothing but a simple microcontroller board.
Raspberry Pi:
  • Now if we talk about Raspberry Pi, it's a mini-computer and is actually termed a microprocessor.
  • Raspberry Pi has onboard RAM, ROM, i/O Ports, USB Ports, HDMI Port etc.
  • Seems quite powerful than Arduino but don't come to a conclusion right away :)
  • But yes Raspberry Pi is like a small computer, obviously, it's not comparable with your Laptop or PC but it's really powerful.
  • And the beauty of it lies in the small size and low price.
  • The latest Raspberry Pi even has a RAM of around 3GB, which is quite a lot. I am using Note 3 Mobile and it has 3GB RAM. So, now you can get an idea of what it is capable of.
  • As it's a small computer so you must be thinking what its operating system. When it comes out of the factory, it has no operating system on it but one can install any operating system like Linux, Windows etc.
  • Normally it is used with Linux and its current operating system is called Raspbian.
So, from the above discussion, we concluded that Arduino is a Microcontroller board while Raspberry Pi is a mini-computer. Next, we are going to have a look at the type of Arduino Vs Raspberry Pi.

3. Types of Arduino Vs Raspberry Pi

Arduino:
  • The first board developed by the Arduino company was Arduino UNO which uses Atmega328 Microcontroller but later on, they have developed many new boards.
  • For example, now we have Arduino Ethernet Shield, Arduino Wifi Shield using these we can provide Internet access to our system.
  • Recently they have also developed the Arduino YUN board, which also supports Linux just like Raspberry Pi.
  • Arduino Due is another board that works on a 32-bit instruction set.
  • So, in short, there are a lot of Arduino boards and by combining different boards you can accomplish anything.
  • Suppose, you want to control your Fan via Wifi then you can use Arduino UNO with Arduino Wifi shield and you can easily design this IoT project and can control the fan over WiFi.
Raspberry Pi:
  • Raspberry Pi doesn't have different boards for different tasks like Arduino.
  • Like once there was Raspberry Pi Model A but then they added some more functionality like increased the RAM end so we have Raspberry Pi 2, Raspberry Pi 3 Raspberry Pi 4 etc.
  • So, you can think of Raspberry Pi as a mobile, whose models come out with more enhancement.
  • As I told you earlier Raspberry Pi is a small computer board so it already has everything in it like Wifi, Ethernet, USB Host etc.
  • Raspberry Pi has recently launched a Microcontroller board called Raspberry Pi Pico, which is available for $4.

4. Programming Code

Arduino:
  • For programming Arduino boards, Arduino has launched official software called Arduino IDE.
  • Arduino uses C programming language with a slight difference in syntax from the original C.
  • It has an extensive list of libraries(mostly third-party) for interfacing sensors and modules.
Raspberry Pi:
  • Raspberry Pi can be programmed in any high-level programming language i.e. python, C# etc.
  • Normally, python is used for programming purposes.

Arduino Vs Raspberry Pi - Which one you should prefer?

For a new Engineering student, who has just started his project. He always wonders which one I should use among these two. Should I go with Arduino or should I start working on Raspberry Pi? It's really a big question if you are new in this field. So, let me tell you one thing first, no one is better than the other, Arduino and Raspberry Pi both have their own importance. Now which one you should use, entirely depends on the nature of your project. So, let's take a look at projects for both of these boards. I think this Arduino Vs Raspberry Pi comparison is now going to take an interesting turn. :)

Arduino:
  • Whenever you are working on some pure hardware-related project, in which you need to use different sensors, need to move your motors or actuators etc. then you should always go for Arduino because Arduino is a microcontroller and its best for hardware equipment controlling.
  • That's why in most of the Electrical, Electronics, Mechatronics and Mechanical Projects, Arduino is preferred.
  • It's not like you can't control sensors or motors on Raspberry Pi but it's too difficult in Raspberry Pi and quite easy in Arduino.
  • Moreover, with Arduino, you can attach as many sensors as you want. In simple words, Arduino has a lot of I/Os.
  • Once I have to work on a project, in which I have to control fifty relays so in that case I have used Arduino Mega 2560 which has around 60 input/Output Pins.
  • But you can't control fifty relays with Raspberry Pi.
  • So, in all the hardware projects where you don't need to do cloud computing, IoT etc. it's always preferred to use Arduino boards.
Raspberry Pi:
  • Raspberry Pi is mostly used in computer software projects i.e. IoT, cloud computing etc.
  • Like you have a project in which you need to send data over to some network, then in these types of projects, your first choice should be Raspberry Pi.
  • I once had a project in which I have to design an online Home Automation system.
  • So, in such projects, we just need to interface few sensors which we can do with the Raspberry Pi as it has few Input/Output Pins.
  • But the main part of such projects is to send sensors data over to some network so Raspberry Pi is the right choice here.
  • Although we can also use Arduino YUN in such projects as well but because Raspberry Pi is programmed in python so it's more flexible to use when it comes to cloud computing.
  • Similarly, if you want to design some Face recognition project then Raspberry Pi comes in handy because we can easily install openCV on it as it's an OS (LINUX), we can install anything we want.

So, that's a kind of an overview on Arduino Vs Raspberry Pi, which I think you guys must have enjoyed. It was quite boring so that's why I have tried my best to make it as interesting as I can, but still, if you find it boring then I can't do anything. :) So, that's all about Arduino Vs Raspberry Pi, I hope you guys have got something out of it. Will see you guys in the next tutorial. Till then take care and have fun. :)

How to Measure Frequency using Arduino

Hello friends, hope you all are fine and having fun with your lives. Today, I am going to share on How to measure Frequency using Arduino board. Its quite a simple tutorial but is an essential one especially when you are working on some power related project. Because in Power projects, you have to measure the frequency of AC voltages. I was working on a project in which I have to do dimming of AC Lamp so in that project I have to measure the frequency of AC signal.

I have designed this project using Arduino UNO and have simulated in the Proteus software, which you all know is my favorite simulating software. :) The code is also quite simple which I have given below for download. The simulation is also included in download package but again I suggest you to design it on your own. If you got into any trouble then ask in comments and I will try to resolve them. Anyways let's get started with How to measure frequency using Arduino.

How to Measure Frequency using Arduino ???

  • You can download the simulation for this frequency measuring by clicking the below button:

Download Project Files

  • Now let's design this project in Proteus. So, first of all, design a simulation as shown in below figure:
  • The small block attached with the pin # 2 of Arduino is a frequency meter.
  • We can create any kind of frequency signal using this component.
  • If you double click it then its properties will open up where you can change the frequency as shown in below figure:
  • You can see in the above figure that I have setted the Clock Frequency to 2000 Hz.
  • Now, let's design the programming code for this project. So, paste the below code in your Arduino software:
#include <LiquidCrystal.h>

LiquidCrystal lcd(13,12,11,10,9,8);

long freq, tempo;
int pulsos;
boolean pulso;
void setup() {
  pulso=HIGH;
  pinMode(2,INPUT);
  lcd.begin(20, 4);
  lcd.setCursor(0,0);
  lcd.print("Frequency =");
  lcd.setCursor(1,2);
  lcd.print("www.TheEngineering");
  lcd.setCursor(4,3);
  lcd.print("Projects.com");
}

void loop() {
  tempo = millis();
  if(digitalRead(2)==HIGH)
  {
    if(pulso==HIGH)
    {
      pulsos = pulsos + 1;
    }

    pulso=LOW; 

  }
  else{
    pulso=HIGH;
  }

  if(tempo%2000==0){
    freq = pulsos/2;
    lcd.setCursor(12,0);
    lcd.print(freq);
    lcd.print("Hz");
    pulsos=0;  
  }
}
  • Now using the above code, get your hex file from Arduino software and upload it in your Proteus software.
  • Now once you are done then run your simulation and if everything goes fine then you will get results as shown in below figure:
  • Now you can see the LCD is showing the same frequency as we set in the properties of the frequency meter.
  • The code is quite simple, I don't think it needs any explanation but if you get into sme trouble then ask in comments.
  • The below video will show you this project in detail:
So, that's all for today. I hope now you know How to measure frequency using Arduino. So, will meet you guys in the next tutorial. Till then take care !!! :)

Interfacing of GPS Module with Arduino in Proteus ISIS

Hello Everyone, hope you all are fine and having fun with your lives. Today, I am going to interface GPS Module with Arduino in Proteus ISIS software. Recently, I have shared this amazing GPS Library for Proteus, using which you can quite easily simulate your GPS Module in Proteus software. Today, I am going to interface this GPS Module with the Arduino UNO board and will simulate the result in Proteus software. I am going to use TinyGPS Library and will get Longitude and Latitude out of this GPS Module.

So, if you are new to GPS and you haven't yet installed the GPS Library for Proteus, then you must first download that library and install it. I am using Arduino board in today's tutorial but you can use any other microcontroller as well like PIC Microcontroller or 8051 Microcontroller. So, let's get started with the Interfacing of GPS Module with Arduino in Proteus ISIS. I have explained this project in detail in the below video:

 

Interfacing of GPS Module with Arduino in Proteus ISIS

  • You can download the complete Simulation along with Arduino Code by clicking the below button, but as I always suggest, design it on your own so that you learn the most out of it.
Download Project Files
  • So, design a simulation in your Proteus software as shown in the below figure:
  • As shown in the above figure, I have used Arduino UNO along with GPS Module.
  • I have used a Virtual terminal to show values getting from the GPS Module.
  • So, I am getting data from the GPS Module via the RX pin of Arduino and then sending this data to Serial Terminal via TX pin.
  • Now, the next thing you need to do is to upload the below code to your Arduino board:
#include <TinyGPS.h>

TinyGPS gps;  //Creates a new instance of the TinyGPS object


void setup()
{
  Serial.begin(9600);  
  Serial.print("Simple TinyGPS library v. "); Serial.println(TinyGPS::library_version());
  Serial.println("Testing GPS");
  Serial.println("Designed by: www.TheEngineeringProjects.com");
  Serial.println();
}

void loop()
{
  bool newData = false;
  unsigned long chars;
  unsigned short sentences, failed;

  // For one second we parse GPS data and report some key values
  for (unsigned long start = millis(); millis() - start < 1000;)
  {
    while (Serial.available())
    {
      char c = Serial.read();
      //Serial.print(c);
      if (gps.encode(c)) 
        newData = true;  
    }
  }

  if (newData)      //If newData is true
  {
    float flat, flon;
    unsigned long age;
    gps.f_get_position(&flat, &flon, &age);   
    Serial.print("Latitude = ");
    Serial.print(flat == TinyGPS::GPS_INVALID_F_ANGLE ? 0.0 : flat, 6);
    Serial.print(" Longitude = ");
    Serial.print(flon == TinyGPS::GPS_INVALID_F_ANGLE ? 0.0 : flon, 6);

  }
 
  Serial.println(failed);
 // if (chars == 0)
   // Serial.println("** No characters received from GPS: check wiring **");
}
  • Now Get the Hex File from Arduino software, and upload it to your Arduino board.
  • Now run your simulation and if everything goes fine then you will get results, as shown in the below figure:
  • Now you can see in the above figure that we have our Latitude and Longitude.
  • This Latitude and Longitude will not change because we have added the dummy values in our GPS module.
  • So, that's how you can quite easily simulate your GPS module with Arduino in Proteus ISIS.

If you have any questions then ask in the comments and I will try to resolve them. Take care. :)

DS1307 Arduino based Digital Clock in Proteus

Hello everyone, today I am going to share a complete project which is DS1307 Arduino based digital Clock in Proteus ISIS. In this project, I have designed a digital clock using Arduino UNO and DS1307 RTC Module. So, first of all, if you haven't yet installed then, you should install Arduino Library for Proteus using which you will be able to easily simulate Arduino baords in Proteus. Along with Arduino Library you will also need to install DS1307 Library for Proteus, which I have shared in my previous post as we are gonna use this RTC Module DS1307 for designing our digital clock.

So, now I hope that you have installed both these libraries successfully and are ready to design this DS1307 Arduino based Digital Clock. I have given the Simulation and Code for download below but as I always advise, don't just download the files. Instead design your own simulation and try to write your own code. In this way, you will learn more out of it. So, let's get started with DS1307 Arduino based Digital Clock in Proteus ISIS:

DS1307 Arduino based Digital Clock in Proteus

  • You can download the complete Proteus Simulation along with Arduino Code by clicking the below button.
  • You will also need DS1307 Library for Arduino, which is also available in this package.

Download Project Files

  • Now, let's get started with designing of this DS1307 Arduino based Digital Clock.
  • So, first of all, design a circuit in Proteus as shown in below figure:
  • You can see in the above figure that I have used Arduino UNO along with RTC module, LCD and the four buttons.
  • These four buttons will be used to change the year,date etc as mentioned on each of them.
  • Now here's the code for DS1307 Arduino based Digital Clock.
#include <LiquidCrystal.h>
#include <DS1307.h>
#include <Wire.h>

LiquidCrystal lcd(13,12,11,10,9,8);

int clock[7];

void setup(){
for(int i=3;i<8;i++){
 pinMode(i,INPUT); 
}

lcd.begin(20,2);
DS1307.begin();
DS1307.setDate(16,4,7,0,17,50,04);//ano,mes,dia,semana,horas,minutos,segundos
}

void loop(){
DS1307.getDate(clock);

lcd.setCursor(0,1);
lcd.print("Time: ");
Print(clock[4]);
lcd.print(":");
Print(clock[5]);
lcd.print(":");
Print(clock[6]);
lcd.setCursor(0,0);
lcd.print("Date: ");
Print(clock[1]);
lcd.print("/");
Print(clock[2]);
lcd.print("/");
lcd.print("20");
Print(clock[0]);

if(digitalRead(7)){
 clock[5]++;
 if(clock[5]>59) clock[5]=0;
 DS1307.setDate(clock[0],clock[1],clock[2],0,clock[4],clock[5],clock[6]);
 while(digitalRead(7));
}

if(digitalRead(6)){
 clock[4]++;
 if(clock[4]>23) clock[4]=0;
 DS1307.setDate(clock[0],clock[1],clock[2],0,clock[4],clock[5],clock[6]);
 while(digitalRead(6));
}

if(digitalRead(5)){
 clock[2]++;
  if(clock[2]>31) clock[2]=1;
 DS1307.setDate(clock[0],clock[1],clock[2],0,clock[4],clock[5],clock[6]);
 while(digitalRead(5));
}

if(digitalRead(4)){
 clock[1]++;
 if(clock[1]>12) clock[1]=1;
 DS1307.setDate(clock[0],clock[1],clock[2],0,clock[4],clock[5],clock[6]);
 while(digitalRead(4));
}

if(digitalRead(3)){
 clock[0]++;
 if(clock[0]>99) clock[0]=0;
 DS1307.setDate(clock[0],clock[1],clock[2],0,clock[4],clock[5],clock[6]);
 while(digitalRead(3));
}


delay(100);
}

void Print(int number){
lcd.print(number/10);
lcd.print(number%10);
}
  • Now get your hex file from Arduino software and then upload it in your Proteus software.
  • Now run your simulation and if everything goes fine, then it will look like something as shown in below figure:
  • Now you can see its today's date in the LCD and the same is shown over on the small pop up of DS1307 Clock.
  • Now the time will start on ticking and the buttons will used to change the minutes hours etc.
  • You will get the better demonstration of this project in the below video.
So, that's all for today. I hope this projects DS1307 Arduino based Digital Clock will help you in some way. So see you in next post.

DS1307 Library for Proteus

Hello friends, hope you all are fine and having fun with your lives. In today's post, I am going to share a new DS1307 Library for Proteus. Recently, I have shared the GSM Library for Proteus, which was really appreciated by the readers so I got quite excited and have designed another new Proteus Library. Currently I am working on many Proteus Libraries. In future, I am gonna design almost all the sensors in Proteus. So stay tuned with us.

Anyways coming to today's post, today we are gonna have a look at DS1307 Library for Proteus. Using this library, now you can quite easily simulate DS1307 module in Proteus in a quite stylish way. ;) I have designed it in red color because its available in red color in market. DS1307 module is already available in Proteus but that one is quite basic and it looks quite dull. The one designed by our team looks quite attractive and is also easy to use. I will post its tutorials soon in which I will interface it with Arduino and PIC Microcontroller. You should also have a look at DS1307 Arduino based Digital Clock in Proteus. So, let's get started with DS1307 Library for Proteus:

DS1307 Library for Proteus

  • First of all, download the DS1307 Library for Proteus, by clicking the below button:
DS1307 Library for Proteus

  • Now, when you click this button you will get a rar file so unrar this file and in it you will find two files named as:
  • RTCModuleTEP.IDX
  • RTCModuleTEP.LIB
  • Place both of these files in the library folder of your Proteus software.
  • Now restart your Proteus software or open it.
  • In the search component bx, search for RTCModuleTEP or DS1307 and place it in your workspace.
  • If everything goes fine then you will get your RTC Module DS1307 as shown in below figure:
  • That's it, now you have the ready to use DS1307 module in Proteus.
  • You need to add a crystal oscillator between X1 and X2 pins while the remaining are used for I2C Protocol, which is a common protocol for RTC Modules.
  • I will also post a tutorial in which I will interface this RTC Module with Arduino or PIC Microcontroller and then you will get a better idea of how to use it.
  • If you design some project using this DS1307 Library for Proteus then do share it with our community so that others could also get benefit out of it.

So, that's all for today. You should also have a look at these New Proteus Libraries for Engineering Students. I hope you are gonna enjoy this DS1307 Library for Proteus. If you have any suggestions or feedback then do let us know in comments. Till next tutorial, take care and have fun!!! :)

Send SMS with SIM900D in Proteus ISIS

Hello friends, hope you all are fine and having fun with your lives. Today, I am going to share a new exciting post on Send SMS with SIM900D in Proteus ISIS. In my previous post, I have shared the new GSM Library for Proteus, which is the first ever designed library for Proteus, and I am quite excited while sharing its features. So, today, we will use this GSM Lirbary for Proteus and we are gonna send sms with Sim900D module available in that library. We are gonna design this whole project in Proteus ISIS.

If you wanna implement it on hardware then you must have a look at Send SMS with SIM900D module with Arduino which is designed in real hardware but today we are gonna just do the simulation part. Iam not gonna use any Microcontroller today. Instead I will just send the AT commands through virtual Terminal and we will make it work.So, let's get started with Send SMSM with Sim900D in Proteus ISIS.

Send SMS with SIM900D in Proteus ISIS

  • First of all, I assume that you have already installed the GSM Library for Proteus. If you haven't then first intall it because without this library you can't use GSM module in Proteus ISIS.
  • Next thing you need to do is to design a circuit as shown in the below figure:
  • Now we need to run the simulation, so run it and in your virtual terminal, send these commands as shown in below figure:
  • The first AT command is for testing our GSM module and as it has given OK in reply so it means its working correctly.
  • The second command AT+CMGF=1 is for converting our GSM module to text messages, which it has accepted correctly and has given us OK in reply.
  • Now we are ready to send our SMS.
  • So, in order to do that we have to send it the command, as shown in below figure:
  • Now you can see, when I have given it the command which is AT+CMGS="+923326062060" , it has accepted it and replied back with this sign ">" , now the GSM module is actually asking for the message body.
  • So, let me write some text and then when I enter the Cntrl+Z command then it will send the message as shown in below figure:
  • So, I have given it the text of my blog link and then when I entered Cntrl+Z then it has sent the SMS and replied me back with +CMGS: 01 means its the first SMS sent from this GSM module.
  • So, that's how you can send any nmber of messages as you want from this module.
  • AS its a simulation, so obviously you are not gonna get the actual message on your mobile number but you can use it for testing your codes.
  • In the next post, I am gonna hopefully implement it using Arduino board or PIC Microcontroller.
So, that's all for today, I hope you have enjoyed the Send SMS with Sim900D in Proteus ISIS software. Till next tutorial, take care and have fun!!! :)

GSM Library for Proteus

Hello friends, hope you all are fine and having fun with your lives. In today's post, I am going to share GSM Library for Proteus. Yeah you have read absolutely fine, today I am gonna share the most awaited and most demanded Proteus Library. :) Till now, I have received hundreds of suggestions and requests about this Library and I have always told them that its under designing process and I will post it real soon. So finally the wait is over and we have our new GSM Library for Proteus, ready to download and simulate in Proteus. Using this GSM library for Proteus, now you can easily simulate your GSM module in Proteus and can test your code. :)

As its the first version of our GSM Library so its not complete or perfect. It is really the basic model of GSM Library and rite now it will only support some commands, which I will post below. I am still working on it and I will soon update these files and will add more commands in it but till then you have to use these commands only. Moreover, this Library contains only one module in it which is SIM900D module. I will add more soon like SIM900A and Sim300 etc. real soon. I will also interface it with different Microcontrollers like Arduino or PIC Microcontroller etc. and will share their tutorials. So. let's get started with GSM Library for Proteus:

Note: Other Proteus Libraries are as follows:

GSM Library for Proteus

  • First of all, download the GSM Library for Proteus by clicking the below button:
GSM Library for Proteus

  • When you download it, you will get three files in it which are:
    • GSMLibraryTEP.IDX
    • GSMLibraryTEP.LIB
    • GSMLibraryTEP.HEX
  • Place all these files in the Libraries folder of your Proteus software.
Note:
  • Now, open your Proteus software or restart it if its already open and in components list search for SIM900D and you will get three results for it.
  • Place all of them in your Proteus workspace and they will look like as shown in below figure:
  • Now, you can see in the above figure that we have three GSM Modules in our Proteus software.
  • These three GSM modules are exactly same in functionality as you can see they all have two pins on them which are TX and RX and they are only differ in color but they all work on Serial Port.
  • One is in light blue color which is kind of our theme color, next one is in green color while the last one is in red color.
  • So, now let's have a look at how you can use it in your Proteus simulations.
  • Double click any of them and in the program file section, browse to the GSMLibraryTEP.HEX file and upload it in SIM900D module as shown in below figure:
  • AS you can see in the above figure that I have uploaded the GSMLibraryTEP.HEX file in the Program file section.
  • Now click OK and interface a Virtual Terminal with SIM900D, as shown in below figure:
  • Now, I am gonna run my simulation and will send it AT commands we will check the response of this GSM module. :)
  • Now these are some basic commands, which are rite now supported by this version of GSM Module.
  • It won't be able to send or receive SMS rite now because these functionalities are not added yet but they are coming soon, as I am still working on it.
Note: Here's the complete list of commands currently supported by this Sim900D module:
  • AT
  • AT+CPIN?
  • AT+CSQ
  • AT+CGMI
  • AT+COPS?
  • AT+CGMM
  • AT+CGSN
  • AT+CNUM
  • ATA
  • ATH
  • AT+COLP
  • AT+CLIP
  • AT+VTS=1
  • AT+CSMP?
  • AT+CSCS?
  • AT+CSCS="HEX"
  • AT+CSMP
  • AT+CNMI=1,2,0,0,0
  • AT+CMGF=1
  • AT+CMGD=1
  • So, these are the commands which are currently supported by this Version 1.0 of our SIM900D GSM Module. I am gonna add more soon. :)
  • Now, here's a quick video in which I have shown its working, which will give you the better idea of this GSM Module.

Upgrade # 1: Send SMS with Sim900D

That's all for today, I hope you are gonna enjoy this GSM Module. Must write your experience in the below comments which will work as a boost for me and I will design it even faster. :) So, till next tutorial, take care and have fun !!! :)

DC Motor Direction Control with Arduino in Proteus

Hello friends, hope you all are fine and having fun with life. Today, I am going to share DC Motor Direction Control with Arduino. I have designed a complete simulation in Proteus, which will help you in understanding the controlling of DC motor. I would recommend you to first read How to Control relay in Proteus ISIS which will help you in understanding the functionality of relays because in today's tutorial, I have used relays to do the DC Motor Direction Control. I have already posted a tutorial on DC Motor Drive Circuit in Proteus ISIS.

So, for DC Motor Direction Control, I have used Arduino UNO baord, so you should also download this Arduino Library for Proteus so that you can use Arduino boards in Proteus software. I have also provide the simulation and the code for DC Motor Direction Control but I would recommend you to design it on your own so that you learn from it. If you have any problem then ask in comments and I will try to resolve them. In this project, I have used Serial Terminal. So, whenever someone, sends character "C" on serial terminal then the motor will move in Clockwise Direction and when someone sends character "A" then it will move in Anti-clockwise Direction and will stop on character "S". Anyways, lets get started with DC Motor Direction Control with Arduino in Proteus ISIS.

DC Motor Direction Control with Arduino in Proteus ISIS

  • You can download the Proteus simulation for DC Motor Direction Control by clicking the below button:
Download Proteus Simulation for DC Motor

  • So, now let's move on with designing it, first of all get the below components from Proteus and place them in your workspace:
  • Now, design a circuit in Proteus software, as shown in below figure:
  • You can see in the above figure that I have used two relays which I have used for DC Motor Direction Control.
  • Moreover, there's a Virtual Terminal through which I am sending the commands.
  • I have used Arduino UNO board for DC Motor Direction Control through Virtual Terminal. You should download the Arduino Library for Proteus so that you can use it in Proteus.
  • Now upload the below code in your Arduino software and get the hex file. You should read how to get the Hex file from Arduino.
int Motor1 = 2;
int Motor2 = 3;

void setup() {
  pinMode(Motor1, OUTPUT);
  pinMode(Motor2, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  if(Serial.available())
  {
    char data = Serial.read();
    Serial.println(data);
    if(data == 'C'){MotorClockwise();}
    if(data == 'A'){MotorAntiClockwise();}
    if(data == 'S'){MotorStop();}
  }
}

void MotorAntiClockwise()
{
  digitalWrite(Motor1, HIGH);
  digitalWrite(Motor2, LOW);
}

void MotorClockwise()
{
  digitalWrite(Motor1, LOW);
  digitalWrite(Motor2, HIGH);
}

void MotorStop()
{
  digitalWrite(Motor1, HIGH);
  digitalWrite(Motor2, HIGH);
}
  • In the above code, I have designed three functions which I am calling on Serial receive.
  • The code is quite self explanatory but if you got problem then ask in comments and I will resolve them.
  • Once everything's done then run your simulation and if you have done fine then it will start working as shown in below figure:
  • Obviously, you can't see a moving DC motor in an image but you can get the idea from Relays position in above figure. :)
  • The below video will give you the better idea of How it works.

So, that's all for today. Hopefully now you have got the idea of How to do DC Motor Direction Control with Arduino in Proteus ISIS. In the next tutorial, I am gonna add speed control of DC Motor. So, till then take care and have fun. :)

Bluetooth Library for Proteus

Hello friends, hope you all are fine. Today, I am going to share a new Bluetooth Library for Proteus. Using this Library, now you can quite easily use Bluetooth modules in Proteus ISIS. I have designed two Bluetooth modules which are HC-05 and HC-06. We all know about these modules. We use these modules for sending data through Bluetooth. Till now, there's no such Bluetooth Library designed for Proteus and we are the first developers of this awesome Bluetooth Library for Proteus. I hope you guys are gonna like it. I have also posted a tutorial in which I have done Arduino Bluetooth Communication using HC05 in hardware. I hope that one will also be interesting to read, if you have planned to start working on Bluetooth Module.

Other bloggers are welcome to share this Bluetooth Library for Proteus on their blogs but do mention our link as a respect to our efforts. These Bluetooth modules are not gonna accept AT Commands rite now as we haven't added much functionality in it but we are gonna add more soon. I will also add more Bluetooth modules in this library and will update it with time. Rite now, it just has two Bluetooth modules in it, which are:

You can do serial communication with these modules quite easily. So, let's get started with Bluetooth Library for Proteus an see How to install it and how to use it in Proteus.

Note: Other Proteus Libraries are as follows:

Bluetooth Library for Proteus

  • So, first of all, download this Bluetooth Library for Proteus by clicking the below button:
Bluetooth Library for Proteus

  • In this rar file, you will find two files which are named as:
    • BluetoothTEP.IDX
    • BluetoothTEP.LIB
  • So, download these two files and place them in the library folder of your Proteus ISIS software.
Note:
  • Now open your Proteus software or restart it if its already open and search for Bluetooth and you will get something as shown in below figure:
  • Now select both of these modules and place them in your workspace and it will look like something as shown in below figure:
  • As, I told earlier, we have just used the basic TX and RX pins of these Bluetooth modules.
  • That's why you can see in the above figure that only TXD and RXD are working while all others are not working.
  • Let's have a look at it working, so let's design a simple circuit and do the communication between these two Bluetooth modules.
  • If you haven't worked on Virtual Terminals then you should read How to use Virtual Terminal in Proteus.
  • So, design a simple circuit as shown in below figure:
  • Now click any HC-05 module and you will get a pop up window.
  • In this window, select COM1 for first HC05 module and COM2 for second HC05 module.
  • Now your COM1 and COM2 should be virtually connected, I have shown how to connect the COM ports virtually in the below video.
  • Now, run your simulation and whatever you send in first terminal will show in second terminal and vice versa.
That's all for today, hope you have liked this post and are gonna enjoy it. Let me know about your remarks for this Bluetooth Library for Proteus. Have fun !!! :)

Arduino Bluetooth Communication using HC05

Hello friends, hope you all are fine and having fun with your lives. Today, I am going to share a new project in which we are gonna do Arduino Bluetooth communication. The Bluetooth module I have used for this project is HC-05, which is a serial Bluetooth module. We can quite easily perform the Bluetooth communication with this module using Arduino board. I have worked on many projects in which I have to send the data from sensors to my computer via Bluetooth. So, in such projects I normally use this Bluetooth module which is connected with the sensors and then Arduino gets the data from these sensors and then send this data to computer via Bluetooth module. In this project, I have used Arduino board but you can use PIC Microcontroller or 8051 Microcontroller as well. Because they both have the Serial pins on them.

Note:

Before reading any further, I think you must have a look at the below post from where you can download the Bluetooth Library for Proteus, using this library you can easily simulate HC-05 or , HC-06 in Proteus software:

I have also done Bluetooth communication with Android mobiles. In these projects I have sent the data from this Bluetooth module to Android mobiles but in such projects I have also designed Bluetooth app on which this data is received. Anyways, that's a topic of another tutorial. Today, I am gonna connect this Bluetooth module with Arduino board and then will send some data to my computer using Bluetooth. So, let's get started with Arduino Bluetooth communication using HC-05 module.

Arduino Bluetooth Communication using HC-05

  • First of all, what you need to do is to buy the Arduino board. I have designed this project using Arduino UNO board but you can buy any of the Arduino Microcontroller board.
  • Next thing you are gonna need is Bluetooth module which is HC-05. But this tutorial will also work for HC-06 or HC-07.
  • Now if you have seen HC-05 then the pins are written on it so connect them with your Arduino board as shown below:
  • This pin configuration is also shown in the below figure:
  • Now that you have connected your Arduino board with the Bluetooth module HC-05 so you are ready to do the Arduino Bluetooth communication.
  • Now upload the below code in your Arduino board:
#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3);

void setup()
{
  Serial.begin(9600);
  mySerial.begin(9600);
}

void loop() 
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read());
}
  • Its a simple software serial code in which we are sending data from our Serial terminal to Bluetooth means whatever you write in your serial terminal will be sent over to Bluetooth and whatever you receive on your Bluetooth will be shown in serial terminal.
  • Now, download this Serial monitor software, I have designed this software and its quite simple one. You can use any other serial monitor like Virtual Terminal in Proteus or Hyper Terminal in Windows XP.
  • We are gonna use this software to get the data on our computer via Bluetooth and you computer must have the Bluetooth in your computer. :P
  • So, download this software by clicking the below button and you can read more about it Microsoft Visual Basic 2010 - Com Port Tutorial.

Download Serial Terminal

  • Now turn on your Arduino and search for the Bluetooth device in your Bluetooth settings and paired with it as shown in below figure.
  • The default pin code for HC-05 is 1234.
  • Now you can see I have paired the HC-05 device.
  • Now, open this software and connect with the COM port of your Bluetooth device.
  • The Bluetooth device generates two COM ports in my case it generated COM11 and COM12 but COM11 worked.
  • So, I connected with COM11 and then whatever I entered in my software is shown on the serial monitor of my Arduino and whatever I entered in the Serial monitor of Arduino is shown in the serial terminal software.
  • Its quite simple and you can do it quite easily.

So, that's all for today and I hope you are gonna make it work in the single attempt. If still having problems then ask in comments and I will resolve them. So, today we have done Arduino Bluetooth communication using HC-05 module.

Syed Zain Nasir

I am Syed Zain Nasir, the founder of <a href=https://www.TheEngineeringProjects.com/>The Engineering Projects</a> (TEP). I am a programmer since 2009 before that I just search things, make small projects and now I am sharing my knowledge through this platform.I also work as a freelancer and did many projects related to programming and electrical circuitry. <a href=https://plus.google.com/+SyedZainNasir/>My Google Profile+</a>

Share
Published by
Syed Zain Nasir