How To Use Oscilloscope in Proteus ISIS

Hello friends, today I am going to post the next lecture of Proteus Tutorial. I am receiving quite a positive response about this Proteus tutorial. In the previous post, we have seen How to use Virtual Terminal in Proteus and today I am going to explain How to use Oscilloscope in Proteus ISIS. This oscilloscope is just the same which you have seen in your electronic or electrical labs. Oscilloscope is basically used to monitor signals or waveforms. Particularly when you are not much aware of the circuit and you need a little debugging then you use oscilloscope. In oscilloscopes, we can visualize the electrical properties of waveforms, like we can check whats the frequency of electrical signal, what's its voltage or current. Digital oscilloscopes have vast range of features in it like RMS value calculation etc. So, in short when you want to visualize or research your available signal then oscilloscope is the first and right most option for you. In today's tutorial, first of all, I am gonna design a simple Pure sine wave circuit and then we will visualize its properties using oscilloscope in Proteus ISIS.

Pure Sine Wave Circuit Design

  • First of all, design a circuit as shown in the below figure.
  • This circuit is a simple pure sine wave inverter which is inverting the DC Signal into AC signal.
  • I have also encircled the components so first of all, find these components in the Proteus database and then design the circuit as shown in the figure. (Right click on the image and then open it in new tab to get the clear view).
  • When I was designing my Pure Sine Wave Inverter Simulation in Proteus then I have to use oscilloscope quite a lot.

How to use Oscilloscope in Proteus ISIS ???

  • Now in order to add the oscilloscope in the circuit, first click on the Virtual Instruments Mode as shown in the below figure.
  • In that mode the first option will be the Oscilloscope which I highlighted as Click # 2 in the below figure.
  • Now drag that oscilloscope and place it in the workspace, as you can see below this component has total four legs means you can view total four different types of signals using this oscilloscope and cal also compare them, if you need to.
  •  Now what I want to check in my circuit is, whether I am getting the pure sine wave at the output or not.
  • So in order to check that I have attached the two ends of the bulb which is acting as a load with the two probes of oscilloscope i.e A & B as shown in the below figure.

How to Monitor Oscilloscope

  • Now in order to monitor the oscilloscope, run / play the Proteus circuit and then double click on the oscilloscope and a new window will open up as shown in the below figure.
  • As you can see in the below image there are total two curves are showing i.e. Channel A & B.
  • Now, if you check the right side of the above figure, you can see there are total four channels, each channel represent each probe.
  • Like we have attached our curves with A & B now I can change settings of A & B channel and the output curves will be changed.
  • Play with this tool and you will how easy it is to use. Change the position of circular know and the amplitude unit will be changed, then change the linear know of each channel and the dc offset will be added in the curve.
Note:
  • This Proteus file has been emailed to all the subscribed members, if someone needs it kindly Subscribe to our Newsletter and it will be emailed to you.

Video Tutorial

  • Here's the complete video tutorial of above discussion, better for understanding.
That's all for today, hope you guys have enjoyed today's tutorial nad have got the clear idea of How to use oscilloscope in Proteus ISIS. In the coming tutorial, I have explained How to Design a DC Power Supply in Proteus ISIS. So, let's meet in the coming tutorial. :)

How To Use Virtual Terminal in Proteus ISIS

Hello everyone, I hope you all are doing great. In today's tutorial, we will have a look at How to use Virtual Terminal in Proteus ISIS. It's our 5th tutorial in Proteus Series. I will first explain what is virtual terminal and then we will have a look at its uses and performance in Proteus ISIS. Virtual Terminal is an important tool available in Proteus and it comes quite in handy while working on serial modules i.e. GSM, GPS, XBee etc. So, let's get started with Virtual Terminal in Proteus.

What is Virtual Terminal ?

Virtual Terminal is a tool in Proteus, which is used to view data coming from Serial Port (DB9) and also used to send the data to Serial Port. In windows XP, there's a built in tool named Hyper Terminal, which is also used for the same purpose but in windows 7 there's no such tool, so for windows 7 users this virtual terminal is quite a great comfort. If you guys don't know about serial port then I would suggest you to read this tutorial to get better idea of serial port: I have posted many tutorials on my blog in which I have communicated over Serial port using different software. For example, you can check this Serial communication in MATLAB and can also have a look at Serial Communication in Visual Studio 2010. As serial communication is too common, so almost every microcontroller supports Serial communication. Arduino UNO has builtin single serial port at its pins 0 and 1, while Arduino Mega 2560 has built in four Serial ports in it. Similarly, PIC Microcontroller also supports Serial port and it is also available in 8051 Microcontroller.

Uses of Virtual Terminal

Virtual Terminal in Proteus, as I explained above, is used to send or receive data to or from a serial port. Serial port is a 9 pin port which is mostly find on the computers and is used in Embedded System Projects for data communication. Normally in student projects, data is sent from hardware to computer via serial port and then user design some application on their computer to view that data in some represent-able form. Now, in projects there are some testing steps which are quite helpful, if we use them properly, and these testing steps require some tools in order to test the process. Like, suppose some student have designed the hardware to send the data to the computer and have also design its application to receive it and now when he tests it he didn't receive any data. At that point student got tensed and don't know where's the error so at that point there's may be some error in the hardware or may be in the software. Now, in order to be sure he need to test both of them separately and here is the point where virtual terminal is used. First connect your hardware with the computer and then run the hardware and check whether you are receiving data on the virtual terminal or not. If you are receiving it, means your hardware is okay and the problem is in software side and if you are not means your hardware is not so good. Whenever I start working on some projects, I always make sure that I am going in right direction like if I have to made this project then after completing my hardware, I will first check it via this virtual terminal and once I got sure that my hardware is okay then I will move to the software part. If you are gonna design the hardware then I think you must check Serial communication with 8051 Microcontroller, which is also designed in Proteus ISIS software and the data is displayed using the same virtual terminal. There are also many other applications of this terminal like suppose you wanna design some circuit in Proteus which involves serial port then you can add this terminal on your circuit and can test it before going to the hardware, which we will shortly see below. So, now let's get started with Virtual Terminal in Proteus.

How to Use Virtual Terminal in Proteus ISIS?

  • First of all open the Proteus ISIS and click on the P button to search for the components, as we seen in previous tutorials.
  • Now in the search box type "COMPIM" , when you search this a result will show up as shown in the below figure:
  •  After Selecting this, click OK to add this component in the database.
  • COMPIM is the serial port in Proteus and using its properties we can assign any COM pin of our computer to it and it will behave like that pin. We will change the properties shortly.
  • Now, click on the Virtual Instrument Mode and then on the Virtual Terminal as shown in the below figure and add it in the Proteus workspace.
  • Now join the TXD pin of COMPIM with the TXD pin of Virtual Terminal and RXD with RXD as shown in the figure below:
  • Now, double click on the COMPIM to open the Properties menu and set the properties as shown below:
  • I have selected COM1 and my baud rate is 9600, you can set it whatever you want like if you are using the COM3 then set the port to COM3 and baud rate of your own choice.
  • Similarly open the properties of the virtual terminal and make sure that the baud rate is same in both the cases.
  • Now connect your hardware with the computer and play the simulation. Again make sure that the port which you have selected for the COMPIM is same port with which you have attached your hardware.
  • After you play the simulation a black window will open up which will show the data coming from your hardware to the COM1 pin as shown below:
  • This black box is actually the Virtual Terminal which is showing data coming from my hardware.
  • If you play the simulation and this Virtual Terminal doesn't pop up then right click on the Virtual Terminal Component and then click on Virtual Terminal which will be at the end in the options and this black window will open up.
I think you guys have got much of the idea of this Virtual Terminal in Proteus ISIS. If you have any problem anywhere, ask in comments and also subscribe to our newsletter via email to get these amazing tutorials right into your mailbox. In the next tutorial, I have explained How to use Oscilloscope in Proteus ISIS. Thanks, take care.

Knowing About Components Available in Proteus ISIS

No. Proteus Tutorials
Give Your Suggestions !!!
1. Getting Started With Proteus
2. Circuit Designing of LCD with PIC on Proteus ISIS
3. Knowing Components Available in Proteus
4. How To Use Virtual Terminal in Proteus ISIS
5. How To Use Oscilloscope in Proteus ISIS
6. DC Motor Drive Circuit in Proteus ISIS
7. Stepper Motor Drive Circuit in Proteus ISIS
8. Servo Motor Drive Circuit in Proteus ISIS
9. Component Designing in Proteus ISIS
10. PCB Designing in Proteus ARES
Hello friends, hope you all are fine and enjoying good health. In this tutorial, my actual plan was to cover the mostly used components in Proteus like to give users an overview of component selection as there are many components in Proteus which are quite hidden and hence quite difficult to find. But, now I have changed my mind as I have received a lot of emails regarding this tutorial in which mostly have asked to elaborate this tutorial and explain other circuits as well just like the LCD one. So after that I thought of making separate tutorial for many different circuits. These are the parts in which I have divided this tutorial and as you can see I have added the news topics as well which are requested by the readers. If you guys need any tutorial then let me know via Contact Form, and I will try to post that as well. So, now in this tutorial, we are gonna see different circuits designed in Proteus. I will explain them step by step so that the users get the better idea of them and also there are many different components in Proteus which are very handy but users mostly don't know about them and I will also explain them to you. I have divided this part of the tutorial into following different parts:
  • How To Use Virtual Terminal in Proteus ISIS.
In this tutorial, I will design a simple serial port circuit and then get the data on the Virtual Terminal. Virtual Terminal is quite same as the Hyper Terminal in the windows XP. It shows the data coming from serial port and also sends the data to the serial port.
  • How To use Oscilloscope in Proteus ISIS.
Oscilloscope is great functionality in Proteus and it works as same as the oscilloscope you have seen in your electronics lab. It shows waveforms and using it you can make variations in your model and can get the desired output.
  • DC Motor Drive Circuit in Proteus ISIS.
In this tutorial, we will check the DC Motor circuit with microcontroller and will drive it.
  •  Stepper Motor Circuit in Proteus ISIS.
In this tutorial, we will check the Stepper Motor circuit with microcontroller and will drive it.
  • Servo Motor Circuit Design in Proteus ISIS.
 In this tutorial, we will check the Servo Motor circuit with microcontroller and will drive it.
  • How to use Serial Registers in Proteus ISIS.
In this tutorial, we will use serial registers with microcontroller. Microcontrollers have limited I/O pins but what if you need 50 pins, which happens mostly in LEDs, then there's a need to increase the pins of microcontroller and for that purpose we use serial registers. That's what I have planned so far, I may add few more tutorial in it depends on the suggestions os keep inform me with your suggestions. Thanks.

Circuit Designing of LCD with PIC

Hello friends, hope you all are fine and enjoying good health. Today I am posting the next part of Proteus tutorial which is Interfacing of LCD with PIC Microcontroller. . In the previous post of this tutorial, we have seen the basics of Proteus and discussed various functions of Proteus ISIS. If you are new to Proteus then I would recommend that before starting this tutorial, you should first read the first part so that you get the better idea of Proteus as I wont go in detail in today's post. Today, we will first design a circuit of LCD with PIC on Proteus ISIS which includes PIC Microcontroller and then we will see how to burn the microcontroller in Proteus and at the end we will run our circuit and will display some text on the LCD. It will be quite a fun so let's start. If anyone having any problem at any point, ask in comments and I will try my best to resolve them. So, let's get started with Interfacing of LCD with PIC Microcontroller.

Circuit Designing in Proteus

  • First of all, open the Proteus ISIS software.
  • In the start, it will look exactly the same as in below image.
  • Now click on button P as shown in below figure.
  • When you click this button a new window will pop up as shown in below figure.
  • This is the place where we search our components, like as I want 7805 so I searched for this component and the Proteus has given me the related components.
  • Once you get your desired component, simply double click on it and it will be added in your database so that you can use them.
  • The below image shows the components which we are gonna use in this project, so simply search for all the components and then double click on them and finally you will get all the components as shown below:
  • Now place these components in the Proteus workspace and connect them.
  • Design exactly the same circuit as shown in the below figure for interfacing of LCD with PIC Microcontroller.
Now our circuit in Proteus is ready to use, the next step is to write a code for the PIC Microcontroller 18F452 and then burn it into the Proteus and check its working.

Code of LCD with PIC18F452

  • There are different compilers to write the code for PIC Microcontroller. Here I am using MikroC Pro for PIC. You can get it easily from the official site of MikroC.
  • I am not going in the details of coding as its beyond the scope of this tutorial, but still I am posting the code.
  • So now create a new project in the MikroC Pro For PIC and copy the below code and paste it in the project and compile.
  • When you compile the project, it will create a .hex file in the same folder where you have saved this project. We will use this hex file shortly.
// LCD module connections sbit LCD_RS at RD2_bit; sbit LCD_EN at RD3_bit; sbit LCD_D4 at RD4_bit; sbit LCD_D5 at RD5_bit; sbit LCD_D6 at RD6_bit; sbit LCD_D7 at RD7_bit; sbit LCD_RS_Direction at TRISD2_bit; sbit LCD_EN_Direction at TRISD3_bit; sbit LCD_D4_Direction at TRISD4_bit; sbit LCD_D5_Direction at TRISD5_bit; sbit LCD_D6_Direction at TRISD6_bit; sbit LCD_D7_Direction at TRISD7_bit; // End LCD module connections char txt1[] = "www.TheEngineeri"; char txt2[] = "ngProjects.com"; char i;                              // Loop variable void Move_Delay() {                  // Function used for text moving Delay_ms(500);                     // You can change the moving speed here } void main(){ Lcd_Init();                        // Initialize LCD Lcd_Cmd(_LCD_CURSOR_OFF);          // LCD Cursor Off Lcd_Cmd(_LCD_CLEAR);               // Clear display Lcd_Out(1,1,txt1);                 // Write text in first row Lcd_Out(2,1,txt2);                 // Write text in second row Delay_ms(2000); while(1); }

Burn the Code in PIC Microcontroller in Proteus ISIS

  • Now we have the hex file, we need to burn this hex file in the microcontroller in Proteus.
  • So, double click on the Microcontroller in Proteus and it will open up the properties menu of PIC microcontroller.
  • Now click, as shown in the below figure, and browse for the hex file and click OK.
  • We need to add this hex file in Proteus here and also select the oscillation frequency which I have selected 16MHz.
Note: Make sure that the oscillation frequency remain same both in the MikroC and the Proteus.
  • After adding the file in the Proteus now click OK and play the simulation, ifeverything goes fine, you will get the results as shown in below image.
Note:
  • Proteus ISIS simulation file and the .hex file has been emailed to all the subscribed members. If anyone need it, subscribe to our newsletter via email and it will be emailed to you as well.
That's all for today, I have tried my best to explain everything on Interfacing of LCD with PIC Microcontroller, but still if someone having problem ask in comments and I will try to resolve. In the next part, we will discuss various components of Proteus which are commonly used like motors, serial port, hyper terminal etc. So stay tuned and also subscribe us via email so that you get all the tutorials straight into your mail box. Have fun. Take care.

Interfacing of EasyVR with Arduino

Hello friends, I hope you all are fine and having fun with your lives. In today's post we are gonna see Interfacing of EasyVR with Arduino UNO. In the previous post, we have seen Getting Started with EasyVR Commander. It was quite simple and if you follow the steps carefully you wont stuck anywhere but still if you into some trouble i am here.

Now this tutorial is quite a quick and important one as it contains the real code using which we will control our robot. After adding the voice commands, now close the EasyVR Commander and open the Arduino Software. Connect the arduino board with computer and double check that your jumper J12 in on position SW. You should also read Training Error: Recognition Failed in EasyVR, if you got such error while working on EasyVR. So, let's get started with Interfacing of EasyVR with Arduino UNO.

Interfacing of EasyVR with Arduino UNO

  • First of all, download the Arduino Libraries for EasyVR Shield, you can easily find them from the official website of EasyVR.
  • Simply connect your Arduino UNO with computer.
  • Open the Arduino Software and copy paste the below code into it.
  • Burn your code in the Arduino Board.
  • Now open your Serial Monitor of ARduino UNO, and you will first see the message saying EasyVR Detected.
  • Now speak any of the command you saved in the board on mic and you will see when the command match the serial terminal will send a specific character.
  • You can change this character if you want to by make a simple change in the code.
#if defined(ARDUINO) && ARDUINO >= 100 #include "Arduino.h" #include "SoftwareSerial.h" SoftwareSerial port(12,13); #else // Arduino 0022 - use modified NewSoftSerial #include "WProgram.h" #include "NewSoftSerial.h" NewSoftSerial port(12,13); #endif #include "EasyVR.h" EasyVR easyvr(port); //Groups and Commands enum Groups { //GROUP_0  = 0, GROUP_1  = 1, }; enum Group0 { G0_ARDUINO = 0, }; enum Group1 { G1_FORWARD = 0, G1_REVERSE = 1, G1_LEFT = 2, G1_RIGHT = 3, G1_STOP = 4, }; EasyVRBridge bridge; int8_t group, idx; void setup() { // bridge mode? if (bridge.check()) { cli(); bridge.loop(0, 1, 12, 13); } // run normally Serial.begin(9600); port.begin(9600); if (!easyvr.detect()) { Serial.println("EasyVR not detected!"); for (;;); } easyvr.setPinOutput(EasyVR::IO1, LOW); Serial.println("EasyVR detected!"); easyvr.setTimeout(5); easyvr.setLanguage(EasyVR::ENGLISH); group = EasyVR::TRIGGER; //<-- start group (customize) pinMode(2, OUTPUT); digitalWrite(2, LOW);    // set the LED off pinMode(3, OUTPUT); digitalWrite(3, LOW); pinMode(4, OUTPUT); digitalWrite(4, LOW); pinMode(5, OUTPUT); digitalWrite(5, LOW); pinMode(6, OUTPUT); digitalWrite(6, LOW); } void action(); void loop() { easyvr.setPinOutput(EasyVR::IO1, HIGH); // LED on (listening) Serial.print("Say a command in Group"); Serial.println(group); easyvr.recognizeCommand(group); do { // can do some processing while waiting for a spoken command } while (!easyvr.hasFinished()); easyvr.setPinOutput(EasyVR::IO1, LOW); // LED off idx = easyvr.getWord(); if (idx >= 0) { // built-in trigger (ROBOT) // group = GROUP_X; <-- jump to another group X return; } idx = easyvr.getCommand(); if (idx >= 0) { // print debug message uint8_t train = 0; char name[32]; Serial.print("Command: "); Serial.print(idx); if (easyvr.dumpCommand(group, idx, name, train)) { Serial.print(" = "); Serial.println(name); } else Serial.println(); easyvr.playSound(0, EasyVR::VOL_FULL); // perform some action action(); } else // errors or timeout { if (easyvr.isTimeout()) Serial.println("Timed out, try again..."); int16_t err = easyvr.getError(); if (err >= 0) { Serial.print("Error "); Serial.println(err, HEX); } group = GROUP_1; } } void action() { switch (group) { // case GROUP_0: // switch (idx) //  { //  case G0_ARDUINO: // write your action code here //      group = GROUP_1; //<-- or jump to another group X for composite commands //    break; //  } //  break; case GROUP_1: switch (idx) { case G1_FORWARD: Serial.print("9"); digitalWrite(2, HIGH); break; case G1_REVERSE: Serial.print("Q"); digitalWrite(3,HIGH); break; case G1_LEFT: Serial.print("X"); digitalWrite(4,HIGH); break; case G1_RIGHT: Serial.print("Y"); digitalWrite(5,HIGH); break; case G1_STOP: Serial.print("Z"); digitalWrite(6,HIGH); break; } break; } }
So, that's all for today. I hope now you can easily Interface EasyVR with Arduino UNO. Have fun and take care !!! :)

Getting Started with EasyVR Commander

In the previous post we have seen the project description of Voice Recognition Project using EasyVR shield. Today we will have a look at Getting started with EasyVR commander. EasyVR shield is a module which is used for voice recognition. First of all, we save our commands in the EasyVR shield and then we use these commands to control anything. In this project, I need to control the robot with voice commands like when someone says FORWARD then the robot start moving in forward direction.

Now first of all what I need to do is to save this FORWARD voice in the shield, which we will see today how to save the command in the shield and after that I will show you the Interfacing of EasyVR shield with Arduino UNO. So that when I say Forward the motor start to move in forward direction, which we will see in the next post. When I was working on EasyVR Shield then I got into a problem which was How to solve Training Error: Recognition Failed in EasyVR and I solved it so you should also have a look at this tutorial if you got such error.

What is EasyVR Commander?

  • EasyVR Commander is a software using which we save the voice commands in the EasyVR Shield. You guys can easily find it using google and its totally free.
  • Download this software and install it.

How to use EasyVR Commander?

  • First of all connect your EasyVR shield with the Arduino UNO Shield as shown in below figure.
 
  • Now be careful in this step as it took the most of my time, on EasyVR shield you will find a jumper J12. Put this jumper on position PC.
Note: When you are adding commands in EasyVR shield using EasyVR Commander, then this jumper J12 must be on position PC and when you are using this shield in the circuit with arduino then this jumper J12 must be on position SW.
  • Connect your Arduino UNO shield with the computer and run the software EasyVR commander. The software will open up as shown in the figure below.
  • Now select the COM Port on which Arduino UNO is attached, which in my case was at COM20.
  • After selecting the COM Port, click the Connect icon as shown in below figure.
  •  When you hit on Connect icon, the software will connect to the COM Port and will open up as shown below:
  •  If you check the left pane, there are many groups and wordset.
  • In wordset, there are pre defined words, which are already saved in the EasyVR shield.
  • The words which I want to save in the shield, will be saved in the Groups.
  • Now to save these words click on any group where you want to save.
  • In the below figure, I have selected Group 2 and then click on the Add Command button (Click # 1) shown in the figure.
  • It will add the command in the group as you can see I have saved the command OK.
  • Now I have saved the command OK but I have to give it some voice to this command.
  • In order to do so, click on the Train Command icon ( Click # 2 ).
  •  Now when you click on the Train Command icon, a message box will pop up as shown in below figure.
  • Click on the button which says Phase 1.
  • Now as you click on this button, a box appears which say "speak now", now its the time to say your command in the mic like I said OK.
  • After listening the command this pop up will again show up and this time the button will be Phase 2.
  • Again click on the button and it will ask for "speak now" and you again speak the same command in the mic.
  • After that the software verifies the two words and if they are same it will confirm the command.
  • You should also have a look at these Arduino Projects for Beginners.
  • In my case, I have saved total 5 commands in my software as shown in the below figure.
  • These were my five commands to control my robot.
  • Now after adding the commands, simply close the software as the voice commands are now saved in the EasyVR shield.
  • Place the jumper J12 back to position SW.
Note:
  • You can also test your added commands,to do so click on Test Command icon on the software and speak up any of the commands from the selected group.
  • If the command matches, then the software will indicate it. Test it and you will see.
In the next post we will check the arduino side of controlling this shield. I will post the code as well so that you can easily test it. If someone's having any problem in using this shield post in comments and I will surely help you out and subscribe us via email to get such exciting tutorials rite in your mailbox. Take care !!!

Voice Recognition using EasyVR Shield

Hello friends, today's post is, as the name suggests, about the Voice Recognition using EasyVR Shield. Voice recognition is quite a difficult task and usually done on software like MATLAB, but what if someone needs a stand alone project, a kind of autonomous voice recognition project, which doesn't use computer.

EasyVR is the solution for such projects. I recently did one project on this module named as Voice Recognition using EasyVR Shield and it worked really cool so I thought to share this new technology with you guys. I couldn't write the next part of Proteus tutorial, actually firstly I was busy in this project and then I thought to share this one as its quite exciting one. After completing this project, I will come back to Proteus tutorial.

This is the first tutorial in this EasyVR shield series. In the next tutorial, I have shared Getting Started with EasyVR Commander and once you got familiar with the EasyVR Commander then you must read Interfacing of EasyVR Commander with Arduino. When I was working on this awesome shield, I got Training Error: Recognition Failed in EasyVR so if you got such error this read this tutorial.

Project Description - Voice Recognition using EasyVR Shield

  • The complete project was quite messy, it involves a lot of sensors as well as dtmf control, so I am not explaining that part in this tutorial. In this project I will explain that section of the project where we used this module.
  • The functioning of this module is to control the robot movement using voice.
  • So, when someone says FORWARD in the mic of this module, the robot moves forward. Someone says RIGHT and the robot moves right and so on.
  • I have divided this project in parts so that you can easily understand the basic concept behind this project.
  • If you are working on such project and are unable to make the code work then you can also get our services by Contacting Us.
  • I have plans on designing this same project on PIC Microcontroller as well as 8051 Microcontroller and I will share their links once I uploaded them.

So, that was all about the Project Description of Voice Recognition using EasyVR Project. In the next posts, we will first see how to add these voice commands in the EasyVR shield and after that we will have a look at the code, I used in Arduino.

Complete Guide on Proteus ISIS & ARES

Hello friends, I hope you all are fine and having fun. In today's tutorial, I will provide you a Complete Guide on Proteus ISIS & ARES. I will start from very basics & will gradually move towards complex projects. I have already shared a lot of tutorials on Proteus software on my blog, I will add their links in today's tutorial as well, in the projects section. If you guys have any problem anywhere, ask in comments and I will try my best to resolve your issues and also subscribe to our newsletter so that you get these burning tutorials rite in your mail box. I will continuously update this list of tutorials so that we have all tutorials at one place.

Course Content of Proteus Guide

I have divided this tutorial in few sections and you have to follow them in sequence and at the end of this course, I hope you will be able to create any simulation in Proteus ISIS & also design its PCB model in Proteus ARES. These sections are as follows:
  • In the 1st section of this course, we will have a look at few basic concepts in Proteus, which are necessary for a beginner to understand.
  • In the 2nd section, we will discuss various components available in Proteus. I know there's countless components in its database and we can't discuss them all but we will have a look at most commonly used components i.e. DC motor, servo motor, serial port, etc. We will design some simple electronics circuits in Proteus to get better understanding.
  • In the 3rd section, we will have a look at How to simulate different Microcontrollers in Proteus ISIS, and we will also simulate different sensors in it. Moreover, I will guide you How to Install 3rd Party Proteus Libraries.
  • In the 4th section, we will first have a detailed introduction to Proteus ARES & then we will design different PCB boards in it, both single layered and multi-layered.
  • In the 5th section, we will see how to design a component in Proteus along with its PCB footprint, if it's not already in Proteus database. Its important, especially when you need to design a PCB in Proteus.
  • In the 6th section, we will simulate different final year complex projects.

Complete Guide on Proteus ISIS & ARES

  • I have created above mentioned sections and added respective links in sequence.
Section 1: Basics of Proteus ISIS
So, let's get started with Basics of Proteus ISIS, these are very basic tutorials, so if you have worked on Proteus before, then you can skip this section. Although, I would recommend you to read them once:
Section 2: Components Available in Proteus ISIS

Proteus has a wide range of components in its database. Using these components you can design almost any kind of circuit and can test and debug it. Below tutorials mention few of these components, which are most commonly used while working on Proteus.

Components Libraries for Proteus

Proteus has a wide range of components available in its database. But it happens quite a lot that you search for some component in Proteus but you can't find it in Proteus database. For such cases, Proteus has given a method using which you can design your component in Proteus and can add all of its features in it. Its quite a lengthy process and needs a lot of effort as it involves creation of DLL files using C++ and VSM. We have designed few components libraries for Proteus, using which you can simulate that component or module in Proteus. Here's the list:

Arduino Projects in Proteus

Arduino is most widely used Microcontroller board these days, which is famous for its flexibilty and ease of use. Arduino board is not available in Proteus but we have provided with Arduino libraries using which you can quite easily use Arduino in Proteus and can test your circuits in Proteus before implementing them in hardware. Below are the tutorials and projects in which we have used Arduino in Proteus.

PIC Microcontroller Projects in Proteus

PIC Microcontroller is another microcontroller which is used by engineers in engineering projects. This microcontroller is available in Proteus so we have designed few projects on it which are mentioned below:

8051 Microcontroller Projects in Proteus

8051 Microcontroller is another microcontroller series which is quite popular and is used in engineering projects quite a lot. 8051 Microcontrollers are also available in Proteus and most normally used 8051 Microcontrollers are AT89C51 and AT89C52. I have shared many projects on 8051 Microcontroller, which are as follows:

Sensors simulation in Proteus
[dt_gap height="7"] Proteus has a wide range of sensors available in its database. We have designed simulations of few of these sensors which are mentioned below. Ultrasonic sensor is not available in Proteus so we have provided its library so thaat students can easily interface and test it in Proteus. These sensors' simulations are mentioned below:
555 Timer Projects in Proteus
555 Timer is known as the king of electronics projects after microcontrollers. 555 timer is used in a lot of electronics projects where you need to ddo control or generate some timing or PWM pulse. 555 Timer is available in Proteus and have designed a lot of tutorials on it, which are mentioned below:
PCB Designing Tutorials in Proteus ARES
Proteus not only provide the capability of circuit designing and testing but also provide the facility of designing a PCB. Proteus comes with two packages one is named as Proteus ISIS in which we design our circuits and the other one is Proteus ARES which is used for PCB designing. Here we have post tutorials on How to design PCBs in Proteus.

So these are the tutorial on which I have written. If you guys stuck at any point, feel free to ask in comments and I will try my best to satisfy you as much as I can. Moreover subscribe to our mailing list so that you get these tutorials rite into your mail box. Stay blessed & take care.

Relay Interfacing With Microcontroller using ULN2003A

Hello friends, I hope you all are doing great. In today's tutorial, I am going to explain the Relay Interfacing with Microcontroller using ULN2003A. In the previous lecture, we have discussed the detailed Introduction to Relay along with its working. Now we are going to practically interface the relay with a microcontroller to design an automatic switch. Relay is a key component in almost every electronic circuit. It can be used as a switch and can also be used as a voltage regulator.

The microcontroller I am going to use here is PIC18F4552 but you can use any other Microcontroller. You just need to change the syntax of coding but the logic will remain the same. Here, I am using ULN2003A to control the relay and from this relay, we can control anything.

So, let's get started:

Where To Buy?
No.ComponentsDistributorLink To Buy
1LEDsAmazonBuy Now
2RelayAmazonBuy Now
3ResistorAmazonBuy Now
4ULN2003AmazonBuy Now

Relay Interfacing With Microcontroller

  • I am using a 12V relay, meaning we need to provide a 12V at its input coil, in order to get it energized.
  • In simple words, when we send the +12V signal from our PIC microcontroller, it will actuate the relay coil and the relay output gets connected and when we make the input LOW, the coil de-energized.

Now, the question is ???

  • But the real question is PIC gives 5V at its high signal but the relay operates at 12V so how to convert this 5V signal into 12V?

What's the Solution ???

  • The solution to this problem is ULN2003A.
  • ULN2003A is used in between the PIC and the relay, so when the PIC sends the HIGH signal i.e. 5V, ULN converts it to 12V, sends it to the relay and the relay gets actuated.

Circuit Diagram of Relay with ULN2003A

  • Here's the circuit diagram for this complete project:

  • Resistance R1 is used as a pull-up resistance.
  • LED is used for the indication, when the relay is actuated LED goes ON otherwise OFF.
  • The programming portion is not much, just send high and low signals from PIC to ON and OFF the relay.

That's all for today guys. If you guys have any problem in any part of this tutorial ask in the comments, and I will reply to your queries. Till next tutorial ALLAH HAFIZ .... :))

Introduction to Relay

Hello everyone! I hope you will be fine and having fun. Today, I am going to give a detailed Introduction to Relay. In this tutorial, we will learn the basics of relays, the working principle of relays, the types of relays and their applications in detail.

A relay is a simple automatic switch that opens and closes the circuit(either electronically or mechanically) based on its input signal. A relay is an electromechanical switch that uses electromagnetism from a small current or voltage to switch higher current or voltage for different appliances. When a relay is in a Normally Open (NO) state, no current passes through it and when the relay is energized, the current starts to flow and we can say the relay is in a Normally Closed state. You should also have a look at Relay Interfacing with Microcontroller using ULN2003.

A Relay is used to control high-power devices with small current devices i.e. microcontrollers. When a small voltage is applied(normally from microcontrollers) to the input coil of a relay, it gets energized and the relay output changes its position from NO to NC. Relays are also used for protection purposes i.e. overload, reverse, under current, over current etc.

Now let's have a detailed overview of What is Relay???

What is a Relay?

Relay is an automatic switch, which opens and closes the circuit electronically. It uses electromagnetism from small voltage to provide higher voltages. It has two basic contacts i.e. NO (Normally Open) and NC (Normally Closed). When input voltage is applied across its coil, NC changes to NO and NO changes to NC. When input voltage is supplied, we say that the relay is energized. It has several features e.g. it can be used for switching smaller voltage to higher. But it can not be used in power-consuming devices. It has a wide range of applications. It can be used in home appliances, electronic circuits where there is a need of protection, robotics for controlling its motors for the proper motion and many more. A basic relay is given in the figure shown below.

1. Relay Pins
  • Relay has total five (5) pins with different individual functions.
  • Three pins are at one side of the structure.
  • The other two pins are on the opposite side of the structure.
  • All of these pins are provided in the table given in the figure shown below.
  • I have also made a relay pin configuration diagram.
  • Pin configuration diagram is shown in the figure given below.
2. Relay Pins Description
  • Each pin has different functions to perform.
  • So, we must know about each of the function before using it, for the better use of it.
  • All these pin descriptions are listed in the table shown in the figure below.
3. Relay Internal Structure
  • Internal structure of any electronic device leads to the better understanding about its working principle.
  • I have made a completely labeled internal structure of relay along with its pin configurations.
  • Relay internal structure is shown in the figure given below.
4. Relay Pinout
  • If you want to know about the pin configuration of any electronic device you must have a look at its pinout diagram.
  • Pinout diagram helps us to understand the pin configurations in a better way.
  • I have made a pinout diagram which contains relay animation, internal structure and the real image.
  • Relay pinout diagram is given in the figure shown below.

5. Relay Working Principle
  • Relay works on a pretty simple principle.
  • Initially when the power is not supplied and relay is in normally open condition, its contact will be opened.
  • When relay is in normally closed condition, its contact will be closed.
  • When power is supplied to its coil, it gets energized and its normally open condition is changed to normally closed and normally closed condition is changed to normally open.
  • If we want to control the device via relay through a software then we have to attach this device to its normally open terminal.
  • When the relay gets energized, that device will be turned on for the appropriate operation.
  • Working principle of array can be understand from the visuals given in the figure shown below.
  • Initially, when the power is not supplied and you can see the relay has normally closed contact as shown in the figure give below.
  • As I have told earlier, when we supply power the normally closed contact will changed its state to normally open contact and vice versa.
  • The explanation of the above step is given in the figure shown below.
  • From the above figure, you can see contact has been changed to normally open contact.
6. Relay Functions
  • Relay has the three basic functions to perform.
  • All of these three functions are provided in the table given in the figure shown below.
  • Air conditioning control (to limit & control a very high power load) are the examples of on/off control of the relay.
  • Limit control includes motor speed control (to disconnect it if it is moving with slow or faster than the desired speed).
  • Test equipment is an example of logic operation, which connects the device with no. of test points.
7. Types of Relays
  • This section will focus on the major types of relays commonly used these days.
  • There are several different types of relays.
  • The basics types are listed in the table given in the figure shown below.
  • Electromagnetic Relay is made up of magnetic, electrical and mechanical components. It has operating coil and mechanical contacts. When AC or DC supply is provided its mechanical contacts get either open of close. An electromagnetic relay is given in the figure shown below.
  • Solid State Relay consists of solid state components. It is used to perform switching operation without any movement in its parts. Its power gain is higher than the electromagnetic relays because it requires low power as in input and provides high power at the output. Solid state is given in the figure shown below.
  • Hybrid Relay is made up of electronic components and electromagnetic relays. Its input part consists of electronic circuitry which performs rectifications tasks. Its output part consist of electromagnetic relay. Hybrid relay is given in the figure shown below.
  • Thermal Relay works on a very simple principle based on heat effect i.e. the rise in ambient temperature changes one position of the contact to another. Mostly it is used for the motor protection purposes. It consists of temperature sensors and control elements. Thermal relay is given n the figure shown below.
  • Reed Relay has two magnetic strips. These strips are known as reed. These are sealed with a glass tube. The reed acts as blade as well as an armature. When magnetic field is applied to the coil. It wraps around the tube and reed start to move to perform the switching operation. Reed relays are given in the figure shown below.
8. Relay Applications
  • Relay has a wide range of application in real life.
  • Some of the major applications are listed in the table given in the figure shown below.
  • Relay can also be used in relay boards for controlling either DC or stepper motor.
  • One relay can control a single device, since two relay module has two relays so it can control two device simultaneously.
  • Two relay board is given in the figure shown below.
  • TV remote is another example of relay applications.
  • TV remote is given in the figure shown below.
  • Relay can also be used in mobile robots to control their motion properly.
  • Visuals for the above step is given in the figure shown below.
9. Relay Simulation in Proteus
  • I have made relay simulation in Proteus ISIS in order get a better idea about it.
  • As the relay is energized, LED will be turned ON.
  • A simple relay simulation in Proteus is given in the figure shown below.
  • I have also made another relay simulation in Proteus ISIS as shown in the figure below.
  • When the relay gets energized, LED will be turned ON, as shown below.
In the tutorial, Introduction to Relay, I have discussed the basics of relay. This is a fully detailed article the basically focuses on the the basics of relay including its pins configurations, its functions, types, working principle and many other things. I hope you have enjoyed the tutorial and I am sure you will appreciate my efforts. If you have any sort of problem you can freely ask us in comments anytime. Our team is always there to help you and to entertain you. I will also try my level best to answer your questions. I will share further interesting topics in my upcoming tutorials. Till my next tutorial, take care and bye :) strong>
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