Go to Post Honestly, I always thought that the true meaning for nerd was an intellectual badass. - rcmolloy [more]
Home
Go Back   Chief Delphi > Technical > Electrical
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Closed Thread
 
Thread Tools Rate Thread Display Modes
  #1   Spotlight this post!  
Unread 16-09-2007, 20:56
RyanN's Avatar
RyanN RyanN is offline
RyanN
AKA: Ryan Nazaretian
FRC #4901 (Garnet Squadron)
Team Role: Mentor
 
Join Date: Jun 2006
Rookie Year: 2005
Location: Columbia, SC
Posts: 1,126
RyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond repute
Project Questions about Programming and Electrical

First off, a description of my project:
I started building a contraption that I call the "Weather Alert." It basically houses a 12V battery, microcontroller, switches, LEDs, Power Inverter, 12V outlet, 120V outlet, and integrated flood lights. My last version of this thing used a BS2 controller, but that proved to be very flaky and didn't have enough ports for me to use. Now this one is controlled by using the 2005 robot controller. I have the controller to run continuously in autonomous mode without the Operator Interface so all programming will be done int he autonomous code. Here are my questions:

Since I know nothing of programming, what variable is used to show the battery voltage, and if there is an equation to detect the exact voltage, can you please supply it?

Is there a way to output a frequency to a speaker to use for an alarm? This will have to be capable of producing many different types of sounds.

How would you charge the battery for this? I was thinking of just using a regular 20AMP Headlight relay to connect and disconnect the charger, but if I do this and run the battery completely down and it cannot connect the charger, how would I charge the battery? I can't have it setup on a normally closed circuit either because when I turn the Weather Alert system off, the charger would remain on, killing my battery(ies).

Some additional information:
My power switch is a DPDT Momentary switch. Both poles are used: one gives the system a "jumpstart" so it can come on (Switch gives power to the power relay, which provides power to the whole system), the other pole is used to send the kill signal to the robot controller.

I think I have a way to connect the charger by using some diodes and letting the RC only charge the battery for like 30 seconds if the battery if full or continue to charge it if it is dead.

If this all seems very confusing, it probably is... Just ask me a particular question and I'll answer it to the best of my knowledge.
__________________
Garnet Squadron
FRC 4901
Controls Mentor
@rnazaretian

Previous mentor and student from Team Fusion, FRC 364
  #2   Spotlight this post!  
Unread 16-09-2007, 21:04
DonRotolo's Avatar
DonRotolo DonRotolo is offline
Back to humble
FRC #0832
Team Role: Mentor
 
Join Date: Jan 2005
Rookie Year: 2005
Location: Atlanta GA
Posts: 6,998
DonRotolo has a reputation beyond reputeDonRotolo has a reputation beyond reputeDonRotolo has a reputation beyond reputeDonRotolo has a reputation beyond reputeDonRotolo has a reputation beyond reputeDonRotolo has a reputation beyond reputeDonRotolo has a reputation beyond reputeDonRotolo has a reputation beyond reputeDonRotolo has a reputation beyond reputeDonRotolo has a reputation beyond reputeDonRotolo has a reputation beyond repute
Re: Project Questions about Programming and Electrical

What source of power is available to charge the battery? If you have 120 AC, then a small charger like the ones used for FIRST would be perfect - leave them on and connected forever and no overcharging.

If it's some other power source, then provide more details please.

Don
__________________

I am N2IRZ - What's your callsign?
  #3   Spotlight this post!  
Unread 16-09-2007, 21:10
RyanN's Avatar
RyanN RyanN is offline
RyanN
AKA: Ryan Nazaretian
FRC #4901 (Garnet Squadron)
Team Role: Mentor
 
Join Date: Jun 2006
Rookie Year: 2005
Location: Columbia, SC
Posts: 1,126
RyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond repute
Re: Project Questions about Programming and Electrical

Quote:
Originally Posted by Don Rotolo View Post
What source of power is available to charge the battery? If you have 120 AC, then a small charger like the ones used for FIRST would be perfect - leave them on and connected forever and no overcharging.

If it's some other power source, then provide more details please.

Don
I want to use something like a 15V 1.5AMP charger (I used a 13.5V 1.5AMP one on my last version) Something that will charge the battery quicker than 3 days. Also, last time I tried leaving the charger on continuously, 3 out of 4 of the batteries cracked and went bad, and I could feel the heat coming out of them with the charger on. So... having a charger that automatically comes on and off is important.
__________________
Garnet Squadron
FRC 4901
Controls Mentor
@rnazaretian

Previous mentor and student from Team Fusion, FRC 364
  #4   Spotlight this post!  
Unread 16-09-2007, 21:24
Phalanx's Avatar
Phalanx Phalanx is offline
Formerly Team 1089 (Mercury)
AKA: Michael Reffler
FRC #5431 (Titan Robotics)
Team Role: Mentor
 
Join Date: Jun 2005
Rookie Year: 1999
Location: Lewisville, TX (previously NJ)
Posts: 384
Phalanx has a reputation beyond reputePhalanx has a reputation beyond reputePhalanx has a reputation beyond reputePhalanx has a reputation beyond reputePhalanx has a reputation beyond reputePhalanx has a reputation beyond reputePhalanx has a reputation beyond reputePhalanx has a reputation beyond reputePhalanx has a reputation beyond reputePhalanx has a reputation beyond reputePhalanx has a reputation beyond repute
Re: Project Questions about Programming and Electrical

Look in ifi_aliases.h, You will find the variables for the battery.
I hope this helps.

/*
*-----------------------------------------------------------------------------------------------------
*---------- Aliases for Battery Voltage bytes --------------------------------------------------------
*-----------------------------------------------------------------------------------------------------
* Formula to calculate voltage in volts:
* current_voltage = battery_voltage * 0.038 + 0.05;
*/

#define battery_voltage rxdata.rc_main_batt*15.64/256
#define backup_voltage rxdata.rc_backup_batt*15.64/256
__________________
Don't just ask the experts, become one!
Leadership is not about ability. It's about responsibility!
Diagonally Parked in a Parallel Universe. It's okay we do Quantum Physics


  #5   Spotlight this post!  
Unread 16-09-2007, 22:00
RyanN's Avatar
RyanN RyanN is offline
RyanN
AKA: Ryan Nazaretian
FRC #4901 (Garnet Squadron)
Team Role: Mentor
 
Join Date: Jun 2006
Rookie Year: 2005
Location: Columbia, SC
Posts: 1,126
RyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond repute
Re: Project Questions about Programming and Electrical

Quote:
Originally Posted by Phalanx View Post
Look in ifi_aliases.h, You will find the variables for the battery.
I hope this helps.

/*
*-----------------------------------------------------------------------------------------------------
*---------- Aliases for Battery Voltage bytes --------------------------------------------------------
*-----------------------------------------------------------------------------------------------------
* Formula to calculate voltage in volts:
* current_voltage = battery_voltage * 0.038 + 0.05;
*/

#define battery_voltage rxdata.rc_main_batt*15.64/256
#define backup_voltage rxdata.rc_backup_batt*15.64/256
Thanks!

Also, I'm going to add something. I think for the charger, I might have a manual override so I can force it to charge while off (like just a small switch in the back)
__________________
Garnet Squadron
FRC 4901
Controls Mentor
@rnazaretian

Previous mentor and student from Team Fusion, FRC 364
  #6   Spotlight this post!  
Unread 17-09-2007, 00:17
Kevin Sevcik's Avatar
Kevin Sevcik Kevin Sevcik is offline
(Insert witty comment here)
FRC #0057 (The Leopards)
Team Role: Mentor
 
Join Date: Jun 2001
Rookie Year: 1998
Location: Houston, Texas
Posts: 3,672
Kevin Sevcik has a reputation beyond reputeKevin Sevcik has a reputation beyond reputeKevin Sevcik has a reputation beyond reputeKevin Sevcik has a reputation beyond reputeKevin Sevcik has a reputation beyond reputeKevin Sevcik has a reputation beyond reputeKevin Sevcik has a reputation beyond reputeKevin Sevcik has a reputation beyond reputeKevin Sevcik has a reputation beyond reputeKevin Sevcik has a reputation beyond reputeKevin Sevcik has a reputation beyond repute
Send a message via AIM to Kevin Sevcik Send a message via Yahoo to Kevin Sevcik
Re: Project Questions about Programming and Electrical

You could pretty easily use the CCP ports represented by PWMs 13-16 to output single frequency tones. You'd set it up to output a square wave at the particular frequency you want. You'd have to filter it fairly heavily if you wanted a pure tone, of course. Square waves have harmonics at odd multiples of the fundamental frequency, so if it were me, I'd pick what your high frequency is, make yourself something like a 4th or 6th order low pass filter with a corner frequency at that highest frequency. Then you can put out frequencies down to about 1/2 that highest frequency and still have a pretty pure tone. You'd need to make up a separate amp to drive your speaker, and you'd want it to filter out the DC offset inherent in that initial PWM-style square wave and you'd probably need to create a virtual ground split between your 0V and 12V and various other things as well, of course.
__________________
The difficult we do today; the impossible we do tomorrow. Miracles by appointment only.

Lone Star Regional Troubleshooter
  #7   Spotlight this post!  
Unread 25-09-2007, 23:30
RyanN's Avatar
RyanN RyanN is offline
RyanN
AKA: Ryan Nazaretian
FRC #4901 (Garnet Squadron)
Team Role: Mentor
 
Join Date: Jun 2006
Rookie Year: 2005
Location: Columbia, SC
Posts: 1,126
RyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond repute
Re: Project Questions about Programming and Electrical

Quote:
Originally Posted by Kevin Sevcik View Post
You could pretty easily use the CCP ports represented by PWMs 13-16 to output single frequency tones. You'd set it up to output a square wave at the particular frequency you want. You'd have to filter it fairly heavily if you wanted a pure tone, of course. Square waves have harmonics at odd multiples of the fundamental frequency, so if it were me, I'd pick what your high frequency is, make yourself something like a 4th or 6th order low pass filter with a corner frequency at that highest frequency. Then you can put out frequencies down to about 1/2 that highest frequency and still have a pretty pure tone. You'd need to make up a separate amp to drive your speaker, and you'd want it to filter out the DC offset inherent in that initial PWM-style square wave and you'd probably need to create a virtual ground split between your 0V and 12V and various other things as well, of course.
Can you please elaborate? Like I've connected my speaker to a this transistor and I have sound, but it's just a steady pulse, like you would expect from a PWM signal. I really need the help with the programming. I'm electrical, not programming, though I've just learned my first lessons with C like creating variables, the evil semicolon; how to compare things using if {} and how to set variables to certain values. That is literally all I know. I even had trouble compiling the code... (due to something going crazy with MPLAB and not saving my user_routines_fast.c... that took about 20 minutes to figure out). Some coding examples or some electrical schematics of what you are talking about will help a lot. I also have the option to use a Homework Basic Stamp boards as like a sound card, but I'd rather not do that because of the power consumption and the price.
__________________
Garnet Squadron
FRC 4901
Controls Mentor
@rnazaretian

Previous mentor and student from Team Fusion, FRC 364
  #8   Spotlight this post!  
Unread 12-10-2007, 22:21
RyanN's Avatar
RyanN RyanN is offline
RyanN
AKA: Ryan Nazaretian
FRC #4901 (Garnet Squadron)
Team Role: Mentor
 
Join Date: Jun 2006
Rookie Year: 2005
Location: Columbia, SC
Posts: 1,126
RyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond repute
Re: Project Questions about Programming and Electrical

Quote:
Originally Posted by Phalanx View Post
Look in ifi_aliases.h, You will find the variables for the battery.
I hope this helps.

/*
*-----------------------------------------------------------------------------------------------------
*---------- Aliases for Battery Voltage bytes --------------------------------------------------------
*-----------------------------------------------------------------------------------------------------
* Formula to calculate voltage in volts:
* current_voltage = battery_voltage * 0.038 + 0.05;
*/

#define battery_voltage rxdata.rc_main_batt*15.64/256
#define backup_voltage rxdata.rc_backup_batt*15.64/256
I've gotten to the part of programming where I'm trying to get my charger working, but obviously there is something wrong with the code.
User_routines_fast.c
Code:
/*** DEFINE USER VARIABLES AND INITIALIZE THEM HERE ***/
int powerrelay;
int tempb;
int tempc;
int tempd;
int pwrofftmout;
int powerout;
int poweroutb;
int volts;
(Skip a lot of the stuff that doesn't matter in this post)
printf("volts %d\n","battery_voltage %d\n");
volts = battery_voltage*0.038+0.05; /*Should give the correct voltage*/
With my novice programming skills, all this seems good to me, however, when using the printf command (which I'm not sure I'm using it correctly) it says "volts 15865" meaning that it has no value for volts and when I manually convert: 15865*0.038+0.05 = 602.92V which is obviously not correct. Any help is greatly appreciated.

Also, the value 15865 does not change at all. It is constant when I disconnect the charger or when I put a load on the battery, which indicates something else is not working properly.
__________________
Garnet Squadron
FRC 4901
Controls Mentor
@rnazaretian

Previous mentor and student from Team Fusion, FRC 364

Last edited by RyanN : 12-10-2007 at 22:23.
  #9   Spotlight this post!  
Unread 12-10-2007, 22:45
bear24rw's Avatar
bear24rw bear24rw is offline
Team 11 Programming Captain
AKA: Max T
FRC #0011 (MORT)
Team Role: Programmer
 
Join Date: Sep 2005
Rookie Year: 2005
Location: Flanders, NJ
Posts: 385
bear24rw is a splendid one to beholdbear24rw is a splendid one to beholdbear24rw is a splendid one to beholdbear24rw is a splendid one to beholdbear24rw is a splendid one to beholdbear24rw is a splendid one to beholdbear24rw is a splendid one to behold
Send a message via AIM to bear24rw
Re: Project Questions about Programming and Electrical

Quote:
Originally Posted by RyanN View Post
I've gotten to the part of programming where I'm trying to get my charger working, but obviously there is something wrong with the code.
User_routines_fast.c
Code:
/*** DEFINE USER VARIABLES AND INITIALIZE THEM HERE ***/
int powerrelay;
int tempb;
int tempc;
int tempd;
int pwrofftmout;
int powerout;
int poweroutb;
int volts;
(Skip a lot of the stuff that doesn't matter in this post)
printf("volts %d\n","battery_voltage %d\n");
volts = battery_voltage*0.038+0.05; /*Should give the correct voltage*/
With my novice programming skills, all this seems good to me, however, when using the printf command (which I'm not sure I'm using it correctly) it says "volts 15865" meaning that it has no value for volts and when I manually convert: 15865*0.038+0.05 = 602.92V which is obviously not correct. Any help is greatly appreciated.

Also, the value 15865 does not change at all. It is constant when I disconnect the charger or when I put a load on the battery, which indicates something else is not working properly.
For your printF your not printing any values.. try it like this
Code:
printf("volts %d\n","battery_voltage %d\n",volts_variable, battery_voltage_variable);
  #10   Spotlight this post!  
Unread 12-10-2007, 22:58
RyanN's Avatar
RyanN RyanN is offline
RyanN
AKA: Ryan Nazaretian
FRC #4901 (Garnet Squadron)
Team Role: Mentor
 
Join Date: Jun 2006
Rookie Year: 2005
Location: Columbia, SC
Posts: 1,126
RyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond repute
Re: Project Questions about Programming and Electrical

Quote:
Originally Posted by bear24rw View Post
For your printF your not printing any values.. try it like this
Code:
printf("volts %d\n","battery_voltage %d\n",volts_variable, battery_voltage_variable);
The Code:
Code:
printf("volts %d\n","battery_voltage %d\n",volts_variable,battery_voltage_variable);
The Build:
Code:
C:\FrcCode2005v2.2\user_routines_fast.c:168:Error [1105] symbol 'volts_variable' has not been defined
C:\FrcCode2005v2.2\user_routines_fast.c:168:Error [1105] symbol 'battery_voltage_variable' has not been defined
C:\FrcCode2005v2.2\user_routines_fast.c:168:Warning [2058] call of function without prototype
Halting build on first failure as requested.
I also tried
Code:
printf("volts %d\n","battery_voltage %d\n",(int)volts,(int)battery_voltage);
That compiled, but it's still giving me a ridiculously high number, which is now constant at 16025.
__________________
Garnet Squadron
FRC 4901
Controls Mentor
@rnazaretian

Previous mentor and student from Team Fusion, FRC 364
  #11   Spotlight this post!  
Unread 13-10-2007, 00:26
bear24rw's Avatar
bear24rw bear24rw is offline
Team 11 Programming Captain
AKA: Max T
FRC #0011 (MORT)
Team Role: Programmer
 
Join Date: Sep 2005
Rookie Year: 2005
Location: Flanders, NJ
Posts: 385
bear24rw is a splendid one to beholdbear24rw is a splendid one to beholdbear24rw is a splendid one to beholdbear24rw is a splendid one to beholdbear24rw is a splendid one to beholdbear24rw is a splendid one to beholdbear24rw is a splendid one to behold
Send a message via AIM to bear24rw
Re: Project Questions about Programming and Electrical

Are you doing the volts equation before printf?
  #12   Spotlight this post!  
Unread 13-10-2007, 00:28
bear24rw's Avatar
bear24rw bear24rw is offline
Team 11 Programming Captain
AKA: Max T
FRC #0011 (MORT)
Team Role: Programmer
 
Join Date: Sep 2005
Rookie Year: 2005
Location: Flanders, NJ
Posts: 385
bear24rw is a splendid one to beholdbear24rw is a splendid one to beholdbear24rw is a splendid one to beholdbear24rw is a splendid one to beholdbear24rw is a splendid one to beholdbear24rw is a splendid one to beholdbear24rw is a splendid one to behold
Send a message via AIM to bear24rw
Re: Project Questions about Programming and Electrical

Code:
printf("volts %d\n","battery_voltage %d\n",(int)volts,(int)battery_voltage);
Try making that

Code:
printf("volts %d\n battery_voltage %d\n",(int)volts,(int)battery_voltage);
  #13   Spotlight this post!  
Unread 14-10-2007, 00:07
RyanN's Avatar
RyanN RyanN is offline
RyanN
AKA: Ryan Nazaretian
FRC #4901 (Garnet Squadron)
Team Role: Mentor
 
Join Date: Jun 2006
Rookie Year: 2005
Location: Columbia, SC
Posts: 1,126
RyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond repute
Re: Project Questions about Programming and Electrical

Well, I tried your code and same thing... I then defined battery_voltage in user_routines_fast and it's now updating, but the values are still in the 15 and 16000 range. I totally took out all the multiplication and stuff to get the normal volts and just created values using that equation so now I'm doing stuff like:
Code:
if (battery_voltage < 361)
{
relay02_fwd =  1 (<- this may be wrong, I'm writing this from memory)
}
The problem still remains: Why is my battery voltage appearing so high (like 600 volts)? I can't really see any relation. I may end up just making my own equation tomorrow or something that will allow me to get the voltage correct. Well, now I'm off to bed.

Edit: Just thought of another problem. My charger should stop charging when the value is greater than like 370 or something, but even though it's 16000, the charger remains on. I can connect the charger to a switch with the software and it works, so I'm probably screwing something up with the programming.
__________________
Garnet Squadron
FRC 4901
Controls Mentor
@rnazaretian

Previous mentor and student from Team Fusion, FRC 364
  #14   Spotlight this post!  
Unread 21-10-2007, 22:43
RyanN's Avatar
RyanN RyanN is offline
RyanN
AKA: Ryan Nazaretian
FRC #4901 (Garnet Squadron)
Team Role: Mentor
 
Join Date: Jun 2006
Rookie Year: 2005
Location: Columbia, SC
Posts: 1,126
RyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond reputeRyanN has a reputation beyond repute
Re: Project Questions about Programming and Electrical

Well, no one has replied in over a week, so I'm going to ask again...
Okay... I've tried to program the controller to read the battery voltage, but it's giving me raw values of over 16,000 (if you go to this post, they're experiencing the same problem). No body answered their question, and I posted there yesterday and also got no answer. Please please, any ideas are greatly appreciated, otherwise this thing will overcharge as it did last time.
__________________
Garnet Squadron
FRC 4901
Controls Mentor
@rnazaretian

Previous mentor and student from Team Fusion, FRC 364
  #15   Spotlight this post!  
Unread 27-09-2007, 13:16
Kevin Sevcik's Avatar
Kevin Sevcik Kevin Sevcik is offline
(Insert witty comment here)
FRC #0057 (The Leopards)
Team Role: Mentor
 
Join Date: Jun 2001
Rookie Year: 1998
Location: Houston, Texas
Posts: 3,672
Kevin Sevcik has a reputation beyond reputeKevin Sevcik has a reputation beyond reputeKevin Sevcik has a reputation beyond reputeKevin Sevcik has a reputation beyond reputeKevin Sevcik has a reputation beyond reputeKevin Sevcik has a reputation beyond reputeKevin Sevcik has a reputation beyond reputeKevin Sevcik has a reputation beyond reputeKevin Sevcik has a reputation beyond reputeKevin Sevcik has a reputation beyond reputeKevin Sevcik has a reputation beyond repute
Send a message via AIM to Kevin Sevcik Send a message via Yahoo to Kevin Sevcik
Re: Project Questions about Programming and Electrical

Ryan,

PWM outputs 13-16 are directly connected to the user processor's CCP modules, so you can use them to generate timed pulses. The default code has a section briefly covering this:
Code:
/* FIFTH: Set your PWM output types for PWM OUTPUTS 13-16.
  /*   Choose from these parameters for PWM 13-16 respectively:               */
  /*     IFI_PWM  - Standard IFI PWM output generated with Generate_Pwms(...) */
  /*     USER_CCP - User can use PWM pin as digital I/O or CCP pin.           */
  Setup_PWM_Output_Type(IFI_PWM,IFI_PWM,IFI_PWM,IFI_PWM);

  /* 
     Example: The following would generate a 40KHz PWM with a 50% duty cycle on the CCP2 pin:

         CCP2CON = 0x3C;
         PR2 = 0xF9;
         CCPR2L = 0x7F;
         T2CON = 0;
         T2CONbits.TMR2ON = 1;

         Setup_PWM_Output_Type(USER_CCP,IFI_PWM,IFI_PWM,IFI_PWM);
  */
One use for the CCP hardware was replacing the IFI code for the PWMs with more stable code. This is described here.

So, using the CCP, you can get a square wave signal at (mostly) whatever frequency you want, but two problems remain. First, the signal will oscillate between 0(ish)V and 5(ish)V. Sending something like this through a speaker isn't particularly nice. Especially if the 0V side isn't 0V, as then you'd be constantly sending a current through the speaker. So you'd need an op-amp circuit to shift the square wave so it oscillates around 0V.

You could, in fact, send this through the speaker, but it'd sound a bit odd as it's not a nice sine wave like a pure audio tone is. It's possible to get a nice pure tone out of a square wave, however. The sharp edges (more or less) represent higher frequency components of the signal. So if you create a filtering circuit to filter out high frequencies, you'll get a much purer, cleaner tone. That bit isn't as necessary to making a sound come out of the speaker, though.
__________________
The difficult we do today; the impossible we do tomorrow. Miracles by appointment only.

Lone Star Regional Troubleshooter
Closed Thread


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
two electrical questions mechanicalbrain Electrical 9 11-07-2005 09:41
Problems and questions about programming hedgehogger Programming 4 15-01-2005 18:18
Questions about DNS, URL Forwarding, and Cloaking sanddrag Website Design/Showcase 7 22-10-2004 21:32
Questions about Textures and Models thoughtful 3D Animation and Competition 28 11-02-2004 22:13
Pneumatics electrical wiring and programming archiver 2001 1 23-06-2002 23:10


All times are GMT -5. The time now is 11:47.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi