Welcome
Username or Email:

Password:


Missing Code




[ ]
[ ]
Online
  • Guests: 47
  • Members: 0
  • Newest Member: omjtest
  • Most ever online: 396
    Guests: 396, Members: 0 on 12 Jan : 12:51
Members Birthdays:
No birthdays today

Next birthdays
09/29 Ultra7 (54)
09/29 uitvinderalex (36)
09/30 Terrorhertz (15)
Contact
If you need assistance, please send an email to forum at 4hv dot org. To ensure your email is not marked as spam, please include the phrase "4hv help" in the subject line. You can also find assistance via IRC, at irc.shadowworld.net, room #hvcomm.
Support 4hv.org!
Donate:
4hv.org is hosted on a dedicated server. Unfortunately, this server costs and we rely on the help of site members to keep 4hv.org running. Please consider donating. We will place your name on the thanks list and you'll be helping to keep 4hv.org alive and free for everyone. Members whose names appear in red bold have donated recently. Green bold denotes those who have recently donated to keep the server carbon neutral.


Special Thanks To:
  • Aaron Holmes
  • Aaron Wheeler
  • Adam Horden
  • Alan Scrimgeour
  • Andre
  • Andrew Haynes
  • Anonymous000
  • asabase
  • Austin Weil
  • barney
  • Barry
  • Bert Hickman
  • Bill Kukowski
  • Blitzorn
  • Brandon Paradelas
  • Bruce Bowling
  • BubeeMike
  • Byong Park
  • Cesiumsponge
  • Chris F.
  • Chris Hooper
  • Corey Worthington
  • Derek Woodroffe
  • Dalus
  • Dan Strother
  • Daniel Davis
  • Daniel Uhrenholt
  • datasheetarchive
  • Dave Billington
  • Dave Marshall
  • David F.
  • Dennis Rogers
  • drelectrix
  • Dr. John Gudenas
  • Dr. Spark
  • E.TexasTesla
  • eastvoltresearch
  • Eirik Taylor
  • Erik Dyakov
  • Erlend^SE
  • Finn Hammer
  • Firebug24k
  • GalliumMan
  • Gary Peterson
  • George Slade
  • GhostNull
  • Gordon Mcknight
  • Graham Armitage
  • Grant
  • GreySoul
  • Henry H
  • IamSmooth
  • In memory of Leo Powning
  • Jacob Cash
  • James Howells
  • James Pawson
  • Jeff Greenfield
  • Jeff Thomas
  • Jesse Frost
  • Jim Mitchell
  • jlr134
  • Joe Mastroianni
  • John Forcina
  • John Oberg
  • John Willcutt
  • Jon Newcomb
  • klugesmith
  • Leslie Wright
  • Lutz Hoffman
  • Mads Barnkob
  • Martin King
  • Mats Karlsson
  • Matt Gibson
  • Matthew Guidry
  • mbd
  • Michael D'Angelo
  • Mikkel
  • mileswaldron
  • mister_rf
  • Neil Foster
  • Nick de Smith
  • Nick Soroka
  • nicklenorp
  • Nik
  • Norman Stanley
  • Patrick Coleman
  • Paul Brodie
  • Paul Jordan
  • Paul Montgomery
  • Ped
  • Peter Krogen
  • Peter Terren
  • PhilGood
  • Richard Feldman
  • Robert Bush
  • Royce Bailey
  • Scott Fusare
  • Scott Newman
  • smiffy
  • Stella
  • Steven Busic
  • Steve Conner
  • Steve Jones
  • Steve Ward
  • Sulaiman
  • Thomas Coyle
  • Thomas A. Wallace
  • Thomas W
  • Timo
  • Torch
  • Ulf Jonsson
  • vasil
  • Vaxian
  • vladi mazzilli
  • wastehl
  • Weston
  • William Kim
  • William N.
  • William Stehl
  • Wesley Venis
The aforementioned have contributed financially to the continuing triumph of 4hv.org. They are deserving of my most heartfelt thanks.
Forums
4hv.org :: Forums :: Electromagnetic Projectile Accelerators
« Previous topic | Next topic »   

V3 Coil Carbine

Move Thread LAN_403
ben5017
Thu Mar 07 2013, 02:57PM
ben5017 Registered Member #3315 Joined: Thu Oct 14 2010, 04:23PM
Location:
Posts: 156
Yan:

About my firing topology. I actually have the sensor triggering a 555 which in turn, puts the output low then to the inverting igbt gate driver.

As for my bug. Turned out I had a bad 555 timer, (a good portion of the 555's I just got of mouser were defective so I kept replacing a bad one with a bad one.... as well as a shaky at best breadboard).

That being said could the sensor still cause the same issues on the 555 as on the igbt driver?

What is a good way to protect the sensors?
-Would making the sensor housing out of powdered ferrite help isolate the phototransistor from the emi?

MAXWELL:
I just bought a few microprocessors (mega 8 I think couple others) to mess around with, but I have never used one and don’t know where to start... Maybe taking the time to learn and replacing all my firing circuits with a microchip might be the way to go, I am a bit intimidated to try as I have no idea where to begin.

NEW ISSUES:
1) Injector sometimes (maybe 1 out of 10) fires when I release the trigger? ( Topology, adjustable pulse length 555 edge trigger mono stable, connected to 422 driver)
Any thoughts?

2) I hooked up my injector and fired a few shots, ever since then the Resistance on my igbts when open is 14K ohms, (same on all igbts (3 stages +injector))?? As you can imagine this drastically reduced velocity. I have tried everything to figure out what’s going on (changed 555, drivers, IGBT's) I still cannot figure it out.
Back to top
Maxwell
Thu Mar 07 2013, 06:26PM
Maxwell Registered Member #8497 Joined: Tue Dec 04 2012, 06:24PM
Location:
Posts: 74
ben5017 wrote ...


MAXWELL:
I just bought a few microprocessors (mega 8 I think couple others) to mess around with, but I have never used one and don’t know where to start... Maybe taking the time to learn and replacing all my firing circuits with a microchip might be the way to go, I am a bit intimidated to try as I have no idea where to begin.




If you have $25 and a USB cable laying around, buy any arduino you can easily get your hands on. I'll write the timing code for you. Real simple coding. FYI - the DUO utilizes the microUSB connector - which breaks easily.

Atmega8's will require an external programmer - something I don't venture off into.
Back to top
ben5017
Thu Mar 07 2013, 06:35PM
ben5017 Registered Member #3315 Joined: Thu Oct 14 2010, 04:23PM
Location:
Posts: 156
That would be awesome Maxwell. I will buy one today after I get out of work. Will any arduno work? Which one would you recommend? It’s long over due for me to start playing with the microchips. You think I could "reverse engineer" the code to learn how to program them?

Do you think changing to digital would have any significant effect on performance?
Back to top
ben5017
Thu Mar 07 2013, 08:18PM
ben5017 Registered Member #3315 Joined: Thu Oct 14 2010, 04:23PM
Location:
Posts: 156
just picked up an arduino mega 2560, now just waiting for that code maxwell haha
Back to top
Yandersen
Thu Mar 07 2013, 09:25PM
Yandersen Registered Member #6944 Joined: Fri Sept 28 2012, 04:54PM
Location: Canada
Posts: 340
I gave up with optical sensing already as even full metal shielding doesn't solve the problem completely. So the sensor must be as far from coil as possible. Either use laser diodes to stretch the beam, or optical cable to drive it away from coil to somewhere where EMI is low enough to not interfere with sensor. I would recommend optical cables as you can stretch all optowires in one place where all sensors and microcontroller are located - no low-current electronics works near the high pulsed magnetic fields.

Issue 1 is not surprising - common problem caused by mechanical switch. Hardly solvable - switch always glitches a little when contacts are connected or disconnected giving some false signals due to microvibrations. You can involve microcontroller to filter those false pulses: after triggering occurs make it insensitive for any other state changes for some period of time. For example...
My solution is two push buttons and a 555 timer - one button switches power supply on, another - switches it off and initiates firing sequence.
If you think smg may be wrong with yours IGBT, measure it outside the circuit, having gate and emitter connected. 14K may be given by other elements or some small floating positive voltage on gate.
Back to top
Maxwell
Fri Mar 08 2013, 02:40AM
Maxwell Registered Member #8497 Joined: Tue Dec 04 2012, 06:24PM
Location:
Posts: 74
Quick Reply: Modifying my code for you to be able to understand. I'll have it posted (edited here) before midnight.

Code is posted below.
I haven't used the Mega in a year or two - but it should like this code.

Serial communications are established thru USB (make sure the baud rate on the arduino side is 9600)

variable delta x is the distance between photogates in mm.

Digital pin 3 is declared as an input. It will accept 0-5v (use a high impedance voltage divider just for safety for your trigger). When a HIGH signal is read, a de-bounce code pauses for 225ms (what I found to be fool-proof for my simple mechanical switches. IF you are doing a direct contact you may drop this down to 1 or 2ms).

Digital pins 10,11 are the photogate pins. They have a timeout in the speed_trap function that will declare an error if nothing passes between within 500ms. When the signal goes high to a pin from the photogate, the timers are triggered.



Variable 'engage' is the modular part - you can set the Arduino to jump to different functions by the number assigned to engage. I assumed engage 0 to mean waiting for trigger, engage 1 is trigger actuated.
Back to top
ben5017
Fri Mar 08 2013, 03:14AM
ben5017 Registered Member #3315 Joined: Thu Oct 14 2010, 04:23PM
Location:
Posts: 156
You are the man. I love this place...
Back to top
Maxwell
Fri Mar 08 2013, 03:58AM
Maxwell Registered Member #8497 Joined: Tue Dec 04 2012, 06:24PM
Location:
Posts: 74
//Okay, so I down-compiled my code into this small format.
//Ask if you have any questions.
//It's not running 100% efficient but it is modular.

volatile byte engage; //Declare 'interrupts' as volatile
byte tabA;
byte darkA;
byte darkB;
unsigned int deltax; //Timer spacing in mm
unsigned int thrutime;
unsigned long dlaytimeA;
unsigned long dlaytimeB;

void setup()
{
Serial.begin(9600); //Reserve Digital Pins 0 and 1 for Serial
//on Duemillanove but not on Leonardo.

darkA=0; //Set initial Speedtrap ADC values
darkB=0;
engage=0; //Trigger status flag

pinMode(3,INPUT); //Pseudo-Interrupt pin (trigger)
pinMode(10,INPUT); //PhotoGate Entry
pinMode(11,INPUT); //PhotoGate Exit

deltax = 80; //Speedtrap light spacing in mm

}


void loop()
{


if(digitalRead(3)==HIGH && tabA==0)
{dlaytimeB=millis()+225; tabA=1;} //digital de-bounce script (225ms)
if(millis()>(dlaytimeB))
{tabA=0;}
if(tabA==1 && millis()>dlaytimeB && digitalRead(3)==HIGH)
{Serial.println("Trigger Action Detected."); engage=1; tabA=0;}



if(engage==1)
{
speed_trap(10,11); //digitalPin# entry, digitalPin# exit
}

if(engage==2)
{ if(thrutime==0)
{ Serial.println("Timing error. No timer activity detected."); }
else
{ calculations(); }
engage=0; //reset fire sequence
}

}




void speed_trap(int vinpinA, int vinpinB)
{ unsigned long enter; unsigned long exit;
unsigned long error; int errorcount = 0;
unsigned long errortime;

errortime=millis()+500; //500ms timeout for non-speedtrap triggering.

while(darkA==0 && errorcount!=1)
{ darkA=digitalRead(vinpinA); error=millis();
if(error>errortime){errorcount=1;}
}
enter=micros();


while(darkB==0 && errorcount!=1)
{ darkB=digitalRead(vinpinB); error=millis();
if(error>errortime){errorcount=1;}
}
exit=micros();


if(errorcount==0)
{ thrutime=(exit-enter); } //time in microseconds (1000us in 1ms)
else
{ thrutime=0; }

engage=2;
}


void calculations()
{
float velocity;
velocity = (deltax/1000.0) / (thrutime/1000000.0);
Serial.print("Thrutime (us): "); Serial.println(thrutime);
Serial.print("Velocity (m/s): ");Serial.println(velocity);
Serial.println("calculations function completed.");
}
Back to top
ben5017
Fri Mar 08 2013, 02:56PM
ben5017 Registered Member #3315 Joined: Thu Oct 14 2010, 04:23PM
Location:
Posts: 156
Thanks alot. What do you think about me changing all my firing circuit into arduino? worth it?
Back to top
Maxwell
Fri Mar 08 2013, 04:29PM
Maxwell Registered Member #8497 Joined: Tue Dec 04 2012, 06:24PM
Location:
Posts: 74
My full code controls the charging, triggering, speedgates and efficiency calculations.

I have a high-impedance voltage divider measuring charge voltage.

I use the Atmega's interal SRAM to take ~100 instantaneous voltage measurements during the discharge (make-shift oscilloscope) before my code jumps to measure velocity.

False triggering and spontaneous charging is somewhat an issue. In my next build, I will implement optocouplers to the HV and charging circuits. For now, i have some transistors that ground out all critical gates after the firing process completes.

The mega is very very capable. Lots of I/O and a large amount of memory.

Try not to fry pins - it makes programming a little more complicated. ;) I found out that they don't like direct exposure to 400v.

Back to top

Moderator(s): Chris Russell, Noelle, Alex, Tesladownunder, Dave Marshall, Dave Billington, Bjørn, Steve Conner, Wolfram, Kizmo, Mads Barnkob

Go to:

Powered by e107 Forum System
 
Legal Information
This site is powered by e107, which is released under the GNU GPL License. All work on this site, except where otherwise noted, is licensed under a Creative Commons Attribution-ShareAlike 2.5 License. By submitting any information to this site, you agree that anything submitted will be so licensed. Please read our Disclaimer and Policies page for information on your rights and responsibilities regarding this site.