Announcement
Collapse
No announcement yet.
Picaxe or adruino programming
Collapse
X
-
Originally posted by bluestix View PostI just got one of the 8 circuit SSG's from r-charge working with an Arduino trigger.
Here are some pictures and a video:
https://s3.amazonaws.com/random.deka...Solid_State.7z
If you have any questions or want the circuit/code let me know.
It works really well so far. Going to test with a larger battery bank soon and 4 more SSG circuit boards and coils.
Tom C
Comment
-
Bluestix, nice looking setup and thanks for posting the pictures.
Just a couple of tips- the solid state SG will give you better results without a core in the coil, as the switching speed is a lot faster you will lose a lot in heat in the coil's core.
If it were me, I would change the SG to self-oscillate by adding an 18k resistor between the base and collectors and replacing the emitter-base diodes with a 10k resistor. Then you vary the pulse frequency by adjusting the master base resistor. Ideally it should be tuned so the coil does not over-saturate. How? Check the coil for heat.
This way the circuit will oscillate at the resonant frequency of the coil.
You can then use the Arduino to monitor the battery voltage and control the SS SG for charge termination voltages, rest periods and trickle charging.
Also, be careful that the spikes don't get back to the chip or you will blow it out. I haven't seen your circuit, but if you haven't already done so isolate the chip from the SG circuitry.
Hope this helps...
John K.
Comment
-
Originally posted by Tom C View Postpost the code here also need to know which pic chip you are using
Tom C
Arduino - ArduinoBoardUno
The circuit is very simple. The LCD screen is unnecessary.
The arduino just controls a single NPN transistor which is wired in a darlington configuration to the trigger of the 8 SSG circuit board.
Here is the code:
Code:#include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2); int backLight = 13; int ledPin = 8; //trigger for SSG circuit int ledState = 0; int ontime = 3; int offtime = 33; void setup() { pinMode(backLight, OUTPUT); pinMode(ledPin, OUTPUT); digitalWrite(backLight, HIGH); lcd.begin(20,4); lcd.clear(); lcd.setCursor(0,0); lcd.print("Pulsing"); lcd.setCursor(0,1); String ontimeString = "On time: "; ontimeString += ontime; ontimeString += "ms"; lcd.print(ontimeString); lcd.setCursor(0,2); String offtimeString = "Off time: "; offtimeString += offtime; offtimeString += "ms"; lcd.print(offtimeString); } void loop() { digitalWrite(ledPin, LOW); delay(offtime); digitalWrite(ledPin, HIGH); delay(ontime); }
Comment
-
Originally posted by John_Koorn View PostBluestix, nice looking setup and thanks for posting the pictures.
Just a couple of tips- the solid state SG will give you better results without a core in the coil, as the switching speed is a lot faster you will lose a lot in heat in the coil's core.
If it were me, I would change the SG to self-oscillate by adding an 18k resistor between the base and collectors and replacing the emitter-base diodes with a 10k resistor. Then you vary the pulse frequency by adjusting the master base resistor. Ideally it should be tuned so the coil does not over-saturate. How? Check the coil for heat.
This way the circuit will oscillate at the resonant frequency of the coil.
You can then use the Arduino to monitor the battery voltage and control the SS SG for charge termination voltages, rest periods and trickle charging.
Thanks for the tips. I was curious how the self oscillating circuits worked.
I haven't found heat in the core to be a problem. If I made the pulse frequency too fast or the on time too short then the coil just doesn't create the spike and battery doesn't charge.
So far I have been tuning it by ear (the coil makes noise) and by watching the voltmeter while adjusting pulse on/off time.
I followed JB's advice from the Monopole Master class video where he mentions trying to get the quickest pulse times with the least amount of current.
Once I figure out how to use this little oscilloscope I got I will try to tune by watching the scope.
I realize that tuning for a specific battery bank might be useless as it will probably have to be retuned for a different bank.
I am very interested in learning more about charge termination voltages, rest periods, and trickle charging. These are things I am planning to incorporate into the circuit but need more info.
Thanks
Comment
-
bluestix, that is why you should try the self-oscillator circuit. Study this patent, figure 4 is the circuit I'm talking about:
Patent US7990110 - Circuits and related methods for charging a battery - Google Patents
you can then adjust the main base resistor for different sized batteries. If you get real clever with the chip you could switch different resistors in and out.
To monitor the battery voltage you will need to learn how to use the ADC inputs on the PIC.
John K.
Comment
-
Hi John K.
I am interested to learn more about the use of PICaxe. Could a tread be started for newbies like me? I would like to design a circuit that will control the 20 run charge and discharge cycles of the monopole energizer. Arduino seems like another way of getting there but the costs are a little too prohibitive for me at the moment to indulge in that.
cheers,
teej_seeker
Comment
-
Originally posted by teej_seeker View PostHi John K.
I am interested to learn more about the use of PICaxe. Could a tread be started for newbies like me? I would like to design a circuit that will control the 20 run charge and discharge cycles of the monopole energizer. Arduino seems like another way of getting there but the costs are a little too prohibitive for me at the moment to indulge in that.
cheers,
teej_seeker
John K.
Comment
-
Originally posted by John_Koorn View Post
To monitor the battery voltage you will need to learn how to use the ADC inputs on the PIC.
John K.
I have voltage sensors I can wire to the controller but I don't know enough about battery charging to know when to stop charging and when to trickle charge.
Any advice?
Comment
Comment