Overunity.com Archives is Temporarily on Read Mode Only!



Free Energy will change the World - Free Energy will stop Climate Change - Free Energy will give us hope
and we will not surrender until free energy will be enabled all over the world, to power planes, cars, ships and trains.
Free energy will help the poor to become independent of needing expensive fuels.
So all in all Free energy will bring far more peace to the world than any other invention has already brought to the world.
Those beautiful words were written by Stefan Hartmann/Owner/Admin at overunity.com
Unfortunately now, Stefan Hartmann is very ill and He needs our help
Stefan wanted that I have all these massive data to get it back online
even being as ill as Stefan is, he transferred all databases and folders
that without his help, this Forum Archives would have never been published here
so, please, as the Webmaster and Creator of these Archives, I am asking that you help him
by making a donation on the Paypal Button above.
You can visit us or register at my main site at:
Overunity Machines Forum



Pierre's 170W in 1600W out Looped Very impressive Build continued & moderated

Started by gotoluc, March 23, 2018, 10:12:45 AM

Previous topic - Next topic

0 Members and 5 Guests are viewing this topic.

listener191

Regarding the L298N temperature rise.

In the test I conducted, I was using the high side transistor pair of OUT1&2 and  the low side transistor pair of OUT3&4, so both half bridges of the L298N were in conduction.
If you move the low switch to another board, then you change the thermal duty cycle of the device, as both half bridges will not be in conduction.

Although the device die is rated to 130 deg C, I would not want to run the heat sinked device over 75deg C, as thermal shutdown occurs some where between 80-85 deg C. 

I set up a test with a 1 in 6 pulse duty cycle, with the high side and low side switches on different boards. 4A peak was achieved with a 38 deg C temp on the heatsink continuous running..so this is the way to go.

Another point ..the high side switch appears to be dropping about 8V at 4A and the low side switch about 4V. MOSFET's would not have this problem .

Regards
L192

listener191

Quote from: gotoluc on March 31, 2018, 06:35:07 PM
That looks like an excellent wiring job L192.
Can you post a front few picture (like below) with rotor in place.
Thanks for sharing your great work
Luc

Hi Gotoluc,

Here is an end shot of the stator and rotor.

Note my coils are a little longer than I planned but they were wound for a 6 slot pitch in a slightly bigger stator.
I didnt want to wind up another set or spend time changing these so they would be tighter.

The rotor covers 9 poles, so induction will be over a wider range of arc.

You can see that more than 36T x 2 could have been packed in these slots, perhaps 46T.

Regards

L192

Cherryman

TK, i think there is a minor mistake in your sketch.


Arrays are zero indexed, that is the first element of the array is at index 0 (zero)


Taken that in to account i changed your code a little.


-----------------------------------------------------------------------------------------------------------------------------------


/**********************************

   L192 March 2018
   30 slot stator
   
   manicured by CM
   massaged by TK:
   -- timing irregularity fixed
   -- for loop added
   -- Enable[] group array added
   -- Speed adjust real-time added



**********************************/
const int Enable[] = { 37,38,39,40,41,42,43,44,45,46 };  // Enable pins for coil groups 1-10

/*
Enable[0] group controls coils _1_11_21_5_15_25 
Enable[1] group controls coils _2_12_22_6_16_26   
Enable[2] group controls coils _3_13_23_7_17_27 
Enable[3] group controls coils _4_14_24_8_18_28 
Enable[4] group controls coils _5_15_25_9_19_29
Enable[5] group controls coils _6_16_26_10_20_30
Enable[6] group controls coils _7_17_27_11_21_1
Enable[7] group controls coils _8_18_28_12_22_2
Enable[8] group controls coils _9_19_29_13_23_3
Enable[9] group controls coils _10_20_30_14_24_4
*/

int pincounter = 1;
int index = 1;
int maxDelay = 100;  // set maximum delay interval in milliseconds here

void setup() {
  // initialize digital pin 1-30 as an output.
for (pincounter = 1; pincounter < 31; pincounter ++) {
pinMode(pincounter, OUTPUT);
}
pinMode(A0, INPUT);
}

void loop() {

  // sequencing 30 coils 5 slot pitch previous coil stays on until next coil is on
  digitalWrite(1,HIGH), digitalWrite(11,HIGH), digitalWrite(21,HIGH); //top switches   
  digitalWrite(5,LOW), digitalWrite(15,LOW), digitalWrite(25,LOW);    // bottom switches
  digitalWrite (Enable[0], HIGH); // enable all switches in group 1
  delay(map(analogRead(A0),0,1023,0,maxDelay));   // read speedpot and wait
  digitalWrite(Enable[9],LOW);  // disable all switches in group 10
  delay(map(analogRead(A0),0,1023,0,maxDelay));

  digitalWrite(2,HIGH), digitalWrite(12,HIGH), digitalWrite(22,HIGH); // top switches ON before 1 OFF
  digitalWrite(6,LOW), digitalWrite(16,LOW), digitalWrite(26,LOW);    // bottom switches ON before 1 OFF
  digitalWrite (Enable[1], HIGH);  // enable all switches in group 2
  delay(map(analogRead(A0),0,1023,0,maxDelay));   // read speedpot and wait
  digitalWrite(Enable[0], LOW);  // disable all switches in group 1
  delay(map(analogRead(A0),0,1023,0,maxDelay));   // read speedpot and wait

  digitalWrite(3,HIGH), digitalWrite(13,HIGH), digitalWrite(22,HIGH); // top switches ON before 2 OFF
  digitalWrite(7,LOW), digitalWrite(17,LOW), digitalWrite(27,LOW);    // bottom switches ON before 2 OFF
  digitalWrite (Enable[2], HIGH);  // enable all switches in group 3
  delay(map(analogRead(A0),0,1023,0,maxDelay));   // read speedpot and wait
  digitalWrite(Enable[1],LOW);   // disable all switches in group 2
  delay(map(analogRead(A0),0,1023,0,maxDelay));   // read speedpot and wait

  digitalWrite(4,HIGH), digitalWrite(14,HIGH), digitalWrite(24,HIGH);  // top switches
  digitalWrite(8,LOW), digitalWrite(18,LOW), digitalWrite(28,LOW);     // bottom switches
  digitalWrite (Enable[3], HIGH);  // enable all switches in group 4
  delay(map(analogRead(A0),0,1023,0,maxDelay));   // read speedpot and wait
  digitalWrite(Enable[2],LOW);   // disable all switches in group 3
  delay(map(analogRead(A0),0,1023,0,maxDelay));   // read speedpot and wait

  digitalWrite(5,HIGH), digitalWrite(15,HIGH), digitalWrite(25,HIGH);  // top switches
  digitalWrite(9,LOW), digitalWrite(19,LOW), digitalWrite(29,LOW);     // bottom switches
  digitalWrite (Enable[4], HIGH);  // enable all switches in group 5
  delay(map(analogRead(A0),0,1023,0,maxDelay));   // read speedpot and wait
  digitalWrite(Enable[3],LOW);   // disable all switches in group 4
  delay(map(analogRead(A0),0,1023,0,maxDelay));   // read speedpot and wait

  digitalWrite(6,HIGH), digitalWrite(16,HIGH), digitalWrite(26,HIGH);  // top switches
  digitalWrite(10,LOW), digitalWrite(20,LOW), digitalWrite(30,LOW);    // bottom switches
  digitalWrite (Enable[5],HIGH); // enable all switches in group 6
  delay(map(analogRead(A0),0,1023,0,maxDelay));   // read speedpot and wait
  digitalWrite(Enable[4],LOW);   // disable all switches in group 5
  delay(map(analogRead(A0),0,1023,0,maxDelay));   // read speedpot and wait

  digitalWrite(7,HIGH), digitalWrite(17,HIGH), digitalWrite(27,HIGH);   // top switches
  digitalWrite(11,LOW), digitalWrite(21,LOW), digitalWrite(1,LOW);      // bottom switches
  digitalWrite (Enable[6],HIGH);  // enable all switches in group 7
  delay(map(analogRead(A0),0,1023,0,maxDelay));   // read speedpot and wait
  digitalWrite(Enable[5],LOW);  // disable all switches in group 6
  delay(map(analogRead(A0),0,1023,0,maxDelay));   // read speedpot and wait

  digitalWrite(8,HIGH), digitalWrite(18,HIGH), digitalWrite(28,HIGH);   // top switches
  digitalWrite(12,LOW), digitalWrite(22,LOW), digitalWrite(2,LOW);      // bottom switches
  digitalWrite (Enable[7],HIGH);  // enable all switches in group 8
  delay(map(analogRead(A0),0,1023,0,maxDelay));   // read speedpot and wait
  digitalWrite(Enable[6],LOW);   // disable all switches in group 7
  delay(map(analogRead(A0),0,1023,0,maxDelay));   // read speedpot and wait

  digitalWrite(9,HIGH), digitalWrite(19,HIGH), digitalWrite(29,HIGH);   // top switches
  digitalWrite(13,LOW), digitalWrite(23,LOW), digitalWrite(3,LOW);      // bottom switches
  digitalWrite (Enable[8],HIGH);  // enable all switches in group 9
  delay(map(analogRead(A0),0,1023,0,maxDelay));   // read speedpot and wait
  digitalWrite(Enable[7],LOW);   // disable all switches in group 8
  delay(map(analogRead(A0),0,1023,0,maxDelay));   // read speedpot and wait

  digitalWrite(10,HIGH), digitalWrite(20,HIGH), digitalWrite(30,HIGH); // top switches
  digitalWrite(14,LOW), digitalWrite(24,LOW), digitalWrite(4,LOW);     // bottom switches
  digitalWrite (Enable[9],HIGH); // enable all switches in group 10
  delay(map(analogRead(A0),0,1023,0,maxDelay));   // read speedpot and wait
  digitalWrite(Enable[8],LOW);   // disable all switches in group 9
  delay(map(analogRead(A0),0,1023,0,maxDelay));   // read speedpot and wait
}



TinselKoala

Right you are, thanks, so I've incorporated your correction into the current "looped" version here. I managed to compress the ten group switch sequences into one loop, I think. The performance looks the same on my test hardware as the unlooped version above.

---------------------------------------------------------------------------------



/**********************************
*
* L192 March 2018
* 30 slot stator
*
* massaged by TK:
* -- timing irregularity fixed
* -- for loop added
* -- Enable[] group array added
* -- Speed adjust real-time added
* -- groups looped
*
* --corrected by CM for array index
*
*
**********************************/

const int Enable[] = { 37,38,39,40,41,42,43,44,45,46 };  // Enable pins for coil groups 1-10

/*
Enable[0] group controls coils _1_11_21_5_15_25 
Enable[1] group controls coils _2_12_22_6_16_26   
Enable[2] group controls coils _3_13_23_7_17_27 
Enable[3] group controls coils _4_14_24_8_18_28 
Enable[4] group controls coils _5_15_25_9_19_29
Enable[5] group controls coils _6_16_26_10_20_30
Enable[6] group controls coils _7_17_27_11_21_1
Enable[7] group controls coils _8_18_28_12_22_2
Enable[8] group controls coils _9_19_29_13_23_3
Enable[9] group controls coils _10_20_30_14_24_4
*/

int pincounter = 1;
int index = 1;
int maxDelay = 500;  // set maximum delay interval in milliseconds here

void setup() {
  // initialize digital pin 1-30 as an output
  for (pincounter = 1; pincounter < 31; pincounter ++) {
    pinMode(pincounter, OUTPUT);
  }
  pinMode(A0, INPUT);
// initialize digital pins in Enable[] as output
  for (index = 0; index <10; index ++){
    pinMode(Enable[index],OUTPUT);
  }
}

void loop() {
  for (index=1; index<11; index ++){
    digitalWrite(index,HIGH), digitalWrite(index+10,HIGH), digitalWrite(index+20,HIGH); //top switches   
    digitalWrite(index+4,LOW), digitalWrite(index+14,LOW), digitalWrite((index+24)%30,LOW);    // bottom switches
    digitalWrite (Enable[index-1], HIGH); // enable all switches in group 0
    delay(map(analogRead(A0),0,1023,0,maxDelay));   // read speedpot and wait
    digitalWrite(Enable[(index+8)%10],LOW);  // disable all switches in group 9
    delay(map(analogRead(A0),0,1023,0,maxDelay));
  }
}

Cherryman

That's a nice solution.


Although it compiles, i'm not sure about the following
You might want to look at the second last line of your code, the format differs from the first time you used it, it looks like typo's, but as it seems to work... i might be missing something.

digitalWrite (Enable[index-1], HIGH); // enable all switches in group 0
digitalWrite(Enable[(index+8)%10],LOW);  // disable all switches in group 9

And a little typo here i think?:

digitalWrite(index+4,LOW), digitalWrite(index+14,LOW), digitalWrite((index+24)%30,LOW);    // bottom switches


Or am i missing the function of the % ?  I'm not thát familiar with Arduino coding. Still learning myself.
Maybe it is the forum that changes it while copy-pasting? 



But my guess would be for the loop:



void loop()
{
  for (index = 1; index < 11; index ++)
{
    digitalWrite (index, HIGH), digitalWrite(index + 10, HIGH), digitalWrite(index + 20, HIGH);           // top switches
    digitalWrite (index + 4, LOW), digitalWrite(index + 14, LOW), digitalWrite(index + 24, LOW);        // bottom switches
    digitalWrite (Enable[index - 1], HIGH);                                                                                      // enable all switches in group 0
    delay(map(analogRead(A0), 0, 1023, 0, maxDelay));                                                                 // read speedpot and wait
    digitalWrite (Enable[index + 8], LOW);                                                                                      // disable all switches in group 9
    delay(map(analogRead(A0), 0, 1023, 0, maxDelay));
  }
}