Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

DC Motor Drive L293D

Status
Not open for further replies.
Sorry i mistakely typed going to use 7812 Only...

You said that your motor is 12 V 300 mA then why do you want to use 7805 for motors? You do't need any regulator for motor. If yo want then you have to use 7812. If you want to use TIP transistor then I think TIP 50 or TIP 100 will do. https://www.futurlec.com/TransPowerTIP.shtml You have to connect two transistors for each motor. L293 is enough for you but if it is heating even after replacing the device then put a good heatsink and see. Try using ULN2803A between l293D and motor. It has 8 inputs and 8 outputs and each channel is 500 mA max.

And i solved the problm of heating dont know what happend but followed everything that You mentioned on the 7 points... now it is not heating...

No!

The 2803 can only sink current so it won't work in a H-Bridge configuration. It also has lower current capability than the L293. Although each output of the 2803 can sink 500mA, the total package can't handle 4 Amps!

My comment on using two 7805s for the logic supply was meant to warn of the danger of the one providing the control signals powering up before the one providing the VCC logic supply. Feeding both from the same 7805 prevents that happening.

Brian.

Now i am having new problem... i am going to implement wireless control to my bot... i have tried with RF Tx and Rx earlier but for having more control i used encoder and decoder... 74923 and 74154... a keypad encoder and normal line decoder... no problem in decoding or encoding but the problem is every time i give the pulse the Rx latch that state i dont want that... so i tried to reset the state to normal after button released( it is mentyioned in 74923 encoder)... but actually it is not happening 74923 is not working i used the application diagram mentioned in datasheet(dta available in high always and output is not enabled)...
and in receiver side the everytime i give pulse in transmitter side i have to remove the power to 74154 then should reconnect then only it is detecting the change in the input(i removed 74923 becoz it is not working)....
pls help me here...
 

Attachments

  • RWS-371-6_433.92MHz_ASK_RF_Receiver_Module_Data_Sheet.pdf
    258.6 KB · Views: 51
  • TWS-BS-3_433.92MHz_ASK_RF_Transmitter_Module_Data_Sheet.pdf
    291.7 KB · Views: 48
  • 74C922.pdf
    128.8 KB · Views: 62
  • 74HC_HCT154.pdf
    131.1 KB · Views: 63
  • app diagram.jpg
    app diagram.jpg
    32.1 KB · Views: 77
  • HT12D.pdf
    175.9 KB · Views: 62
  • ht-12e.pdf
    141.2 KB · Views: 62
  • Screenshot (161).png
    Screenshot (161).png
    163.4 KB · Views: 83

The problem is that when the keys are released, the outputs of the 74C922 are tri-stated (disconnected inside the IC). With nothing driving the '154 it's inputs are floating. You should add a pull-up resistor to each of the data lines entering the '154 so when no key is pressed the lines are pulled high. This will ensure that only output 15 is low and all the other outputs are high. As you are not using output 15 it should be safe to use it as a default 'no key' output.

Brian.
 

No i didnt connected anything to 74923... i just used that alone to test whether working or not... and it is not working... when the switch connected between rows and coloumns are pressed the data available should go low and activate the output to enable the 4-bit data comes on the output pins.. but it is not working like that what it should...

and resistors i added for the diagram to be complex i removed those from what i shown....

The problem is that when the keys are released, the outputs of the 74C922 are tri-stated (disconnected inside the IC). With nothing driving the '154 it's inputs are floating. You should add a pull-up resistor to each of the data lines entering the '154 so when no key is pressed the lines are pulled high. This will ensure that only output 15 is low and all the other outputs are high. As you are not using output 15 it should be safe to use it as a default 'no key' output.

Brian.
 

Can you confirm which IC you are actually using. Your text refers to 74923 which as far as I know does not exist. There is a 74C923 which is a 20 key encoder but your schematics show a 74C922 which is a 16 key encoder. I'm just wondering if you have the wrong pin diagram for the IC.

Brian.
 

No i use only 74C923... in proteus it is not available... i mentioned in text... and the diagram is same for every IC it is clearly mentioned in datasheet that also i attached already...

Can you confirm which IC you are actually using. Your text refers to 74923 which as far as I know does not exist. There is a 74C923 which is a 20 key encoder but your schematics show a 74C922 which is a 16 key encoder. I'm just wondering if you have the wrong pin diagram for the IC.

Brian.
 

Attachments

  • 74C922.pdf
    128.8 KB · Views: 60

I'm not sure where the problem is then.

Can you measure these voltages for me please:
1. from pin 10 (-ve probe) to pin 20
2. from pin 10 (-ve probe) to pin 13 with no keys pressed
3. from pin 10 (-ve probe) to pin 13 with a key pressed (any key)
4. from pin 10 (-ve probe) to pin 6 with a key pressed.

Brian.
 

pin 10-20 5V
10-13 -0V in both conditions...
10-6 - 2.45V in both conditions...

i used switch and next time with a wire i used... but the voltages mentioned are same...
 

Thanks.

The supply voltage is OK and the oscllator voltage is reasonable but it isn't reporting that a key is pressed at all.

I suspect the values of capacitors you are using are simpy too high. You have the scanning rate set too slow for it to function and the debiounce time is set to around one second. This means if it works at all, you may have to wait for several seconds for a key press to be detected and the key would have to be held down for more than one second before being reported.

I suggest changing the values of the oscillator capacitor (C2) to 100nF and the debounce capacitor to 1uF and try again. I also suggest you wire a capacitor of about 100nF across pins 10 and 20 to help the oscillator remain stable.

Brian.
 

I tried with all possiblities... 1uF and 10uF, 1uF and 0.1 uF, then 0.01uF and 0.1uF after refering this page... still no response from it...

Thanks.

The supply voltage is OK and the oscllator voltage is reasonable but it isn't reporting that a key is pressed at all.

I suspect the values of capacitors you are using are simpy too high. You have the scanning rate set too slow for it to function and the debiounce time is set to around one second. This means if it works at all, you may have to wait for several seconds for a key press to be detected and the key would have to be held down for more than one second before being reported.

I suggest changing the values of the oscillator capacitor (C2) to 100nF and the debounce capacitor to 1uF and try again. I also suggest you wire a capacitor of about 100nF across pins 10 and 20 to help the oscillator remain stable.

Brian.
 

There is only one more thing to try:

Disconnect the inverter from pin 14. Connect pin 14 directly to ground.

Using 100nF and 1uF for the capacitor values, try pressing a few keys and see what comes out of pins 15 to 19. The data on these pins should be the binary number of the key you pressed and it should stay there until you press another key.

If that doesn't work, I'm afraid your 74C923 is dead :|

Brian.
 
sorry for late reply....

I tried that too... data available never goes high.... in datasheet it is mentioned that data available should go high and once output enabled goes low then output appears on the data pins...
i removed the switch and directly short the pin 4 and 8 for getting 1111 on data pins but that also not... what can i do...
i bought 74148 can i make with this 16x4.. **broken link removed**


There is only one more thing to try:

Disconnect the inverter from pin 14. Connect pin 14 directly to ground.

Using 100nF and 1uF for the capacitor values, try pressing a few keys and see what comes out of pins 15 to 19. The data on these pins should be the binary number of the key you pressed and it should stay there until you press another key.

If that doesn't work, I'm afraid your 74C923 is dead :|

Brian.
 

I think your 74C923 is faulty.

You can use two 74148s but be aware that these are priority encoders not keyboard encoders so if you press more than one switch at a time it will always return the higher of the two switch values. A normal key encoder will not change until all the keys are released. Also note that you can't connect the switches in a matrix, you have to ground one side of all them and pull the other side up with a resistor so you need 16 switches and 16 pull-up resistors. It might be simpler to emulate a 74C923 in software usng a small PIC or similar device. A PIC is probably cheaper than a new 74C923 and will do exactly the same job.

Brian.
 

so i shld not beleive on these ics... i found one with PIC... wirelless between pic... but i cant find how to make this to control the devices...
this is psedo code i edited...
Code:
 Receiving side code

#include <16F877A.h>
#device *= 16
#fuses HS, NOWDT, NOPROTECT, NOLVP, PUT
#fuses NOBROWNOUT, CPD, NODEBUG, NOWRT
#use delay(clock=10MHz)
#use rs232(baud=1200, rcv=PIN_C7, bits=8, parity=N) 

#include <lcd.c>                 
void receive();
void main()
{
 while(1)
{
 if(dataavailable!=false) 
 receive();
}
 }

receive()
{
 byte c;
 lcd_init();
 lcd_putc("\f");
 while(true)
 {
 c=getc();
 switch(c)
 case 1;
           action1;
           break;
.................
case 32;
         action32;
         break;
 printf(lcd_putc,"\fRx Data = %u",c);
 delay_ms(100);
}
}


Transmitting side code

#include <16F877A.h>
#device *= 16
#device adc=8
#fuses HS, NOWDT, NOPROTECT, NOLVP, PUT
#fuses NOBROWNOUT, CPD, NODEBUG, NOWRT
#use delay(clock=10MHz)
#use rs232(baud=1200, xmit=PIN_C6, bits=8, parity=N)     

#include <lcd.c>               

void main()
{
 byte s=0;
 lcd_init();
 lcd_putc("\f");
 
 while(true)
 {
 s =  readswitches();
 lcd_gotoxy(1,1);
 printf(lcd_putc, "\fTx Data = %u" s);
 putc(s);
 delay_ms(100);
 }
}

port b and d for the keypad on transmitter side and output on receiver side... will it work... i need help.... i am in need for more control to do....
 

WHen you input switch operates it bounces and the TTL input is floating at threshold of 1.3V. Any rapid noise on this input will cause shoot-thru shorting of the drivers.

Any change in directions will also cause motor/generator back EMF to dump into drivers.

Therefore use 4K7 to 10K pullup on all TTL inputs at switches and 0.1uF to ground.
 
i made that and solved now i asked how to work with pic because 74C923 has gone...:cry:
WHen you input switch operates it bounces and the TTL input is floating at threshold of 1.3V. Any rapid noise on this input will cause shoot-thru shorting of the drivers.

Any change in directions will also cause motor/generator back EMF to dump into drivers.

Therefore use 4K7 to 10K pullup on all TTL inputs at switches and 0.1uF to ground.
 

If you are sure a 74C923 will do what you want, I can write a simple program for an inexpensive PIC to emulate it's actions. It would be simpler than the 74C923 circuit because I can make the enable signal programmable and do the debunce in a software routine. I'm thinkng of a 16F628A as the processor because it has sufficient pins and an on-board clock, can you buy them in your locality?

Brian.
 
Thanks for Your concern... and i need that but i have PIC16F877A.. i already did my hobby circuits with that.. so i am little bit familiar in that.. and is my program will work that i post in #34... please tell me that also... thanks once again... very much thanks... i need to work on my own but also give me the program i will post my one also and please check that whether it will work...
If you are sure a 74C923 will do what you want, I can write a simple program for an inexpensive PIC to emulate it's actions. It would be simpler than the 74C923 circuit because I can make the enable signal programmable and do the debunce in a software routine. I'm thinkng of a 16F628A as the processor because it has sufficient pins and an on-board clock, can you buy them in your locality?

Brian.
 

this is my code and runned but the seven segment is not displaying correctly... pls help me... and also how to give software debounce...



Thanks for Your concern... and i need that but i have PIC16F877A.. i already did my hobby circuits with that.. so i am little bit familiar in that.. and is my program will work that i post in #34... please tell me that also... thanks once again... very much thanks... i need to work on my own but also give me the program i will post my one also and please check that whether it will work...
 

Attachments

  • Keypad 16f877a.rar
    699 bytes · Views: 54

I can't open DSN files but the software looks OK although it could be much shorter! Look-up tables for the key number and 7-segment patterns would be faster and more code efficient than lots of switch/case statements.

As I can't see the schematic, can you confirm you are using a common cathode display with the cathode pin grounded and a series resistor in each anode connection please.

Brian.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top