Show Posts
Pages: 1 [2] 3 4 5
16  International / Français / Re: Driver Pont en H mosfet on: November 05, 2012, 11:23:55 am
http://www.irf.com/product-info/datasheets/data/ir2111.pdf

Merci pour ces réponses, mon choix s'est porté sur celui la, sachant que je ne vais utiliser que les pin  5, 6 (1kHZ) ou 9,10(500Hz). En charge, j'aurais une inductance et une résistance.
Je mettrais donc deux drivers avec deux sorties pwm de mon arduino
17  International / Français / Driver Pont en H mosfet on: November 05, 2012, 05:18:08 am
Bonjour à vous,
Je viens à vous pour une simple question, j'aimerai regarder le comportement des mosfets en pont H, pour cela j'aimerai utiliser les sorties de l'arduino en pwm ( de l'ordre de 50HZ). L'utililté d'un driver pour cela est nécessaire pour gérer le courant de grille et les commutations. En charge j'aurais quelque chose de l'ordre de 100W (12V ou 24V avec un courant de 2A ou 3A).

J'avais pensé à mettre deux driver de demi pont: http://www.farnell.com/datasheets/29674.pdf
En complémentant ma sortie, mais le signal pwm de mon microcontroleur je le met en entrée Hin Lin?

Merci d'avance pour vos réponses et remarques,
Je suis ouvert à la discussion, mon choix ne se porte pas nécessairement sur deux driver demi pont complémenté.
18  International / Français / Re: gestion marche arrêt jour/nuit station météo on: September 13, 2012, 06:41:44 am
Merci barbudor,
L'idéal serait de mettre "en veille" l'arduino et le xbee la nuit,
Ou bien envoyer la donnée disons toutes les trois  minutes voire cinq minutes, donc mettre une fonction sleep au xbee.
L'arduino que j'utilise est une mini pro alimenté en 3.3V donc le xbee en transmission cela consomme 150mW max.

J'ai vu que l'on pouvait diminuer la conso de l'arduino en meme temps que le xbee. J'ai vais modifier mon programme de telle sorte que le couple xbee/arduino ne fonctionnent et n'envoient les données que toutes les 10 minutes...le reste du temps ils sont éteints !
19  International / Français / gestion marche arrêt jour/nuit station météo on: September 13, 2012, 04:49:22 am
Bonjour je viens à vous car j'ai un système qui fait l'acquisition de température et d'ensoleillement (BPW21) auto-alimenté et j'aimerai avoir des éclaircissements sur certains points :
J'ai en ma possession un panneau solaire 12V 20W monocristalin j'ai mon courant max du panneau à 1.16A et ma tension max à 17V.
J'ai une batterie lipo 2200mAh 30C 7.4V 2S ce qui fait une puissance de 17 W pour une heure.
Sachant que j'ai un régulateur de charge Li-po pour cellule 2S 7.4V.

Mon système sert à alimenter un arduino, un xbee et un capteur de température situé à l'extérieur donc une tension de 8V en entrée est nécessaire avec une faible consommation.

Mon problème est que si le système fonctionne jour et nuit la batterie tient que 48h, alors j'aimerai commander mon système pour que la journée il fonctionne et la nuit il s'arrete.

J'avais pensé à intégrer à mon système une horloge DS1307 + un relais pour commander automatiquement la mise en marche /arret du système
Exemple : relais etat 1 : mise en marche
                       etat 0 : mise en arret
Ou alors mon système est mal dimensionné pour fonctionner nuit et jour?
Qu'en pensez vous??
Merci d'avance 
20  Using Arduino / Networking, Protocols, and Devices / Re: Xbee API ethernet problem HTML on: June 21, 2012, 08:43:12 am
If i want a reset device. Can I do this :

Code:
void setup()
{
  Ethernet.begin(mac, ip);
  server.begin();
  Serial.begin(9600);
  pinMode(RESET,OUTPUT);
  reset();
  delay(1);
}

void reset()
{
digitalWrite(RESET,LOW);
delay(50);
digitalWrite(RESET,HIGH);
delay(2000);
}

Can i put the function reset in setup like this the device every time resets?
21  Using Arduino / Networking, Protocols, and Devices / Re: Xbee API ethernet problem HTML on: June 21, 2012, 07:50:40 am
Quote
Code:
int dataLength = (packet[1] << 8) | packet[2]; 

I guess packet is defined a uint8_t array. If this is so, you won't get what you expected as packet[1] << 8 is always 0 (shifting all bits out).

I removed the first packet and I kept that the second :

Code:
int b = Serial.read();
    if (b == 0x7E)
      {
        packet[0] = b;                           
        packet[1] = readByte();
        packet[2] = readByte();
        int dataLength = packet[2]; 
        for(int i=1;i<=dataLength;i++)
22  Using Arduino / Networking, Protocols, and Devices / Re: Xbee API ethernet problem HTML on: June 21, 2012, 05:38:15 am
I would like debbug my code with a LED for example so i would like to know where is the problem, on the readpacket (RS232) or on the ethernet web.
This is my code in readpacket :

Code:
void readpacket()
  {
  if (Serial.available() > 0)
    {
digitalWrite(LED,HIGH);
delay(1000);
    delayMax = millis()+50;
    int b = Serial.read();
    if (b == 0x7E)
      {
        packet[0] = b;                           
        packet[1] = readByte();
        packet[2] = readByte();
        int dataLength = (packet[1] << 8) | packet[2]; 
        for(int i=1;i<=dataLength;i++)
          {
            packet[2+i] = readByte();               
          }
        int apiID = packet[3];               
        if (apiID == 0x83)
            {

             
              moduleID[1] = (packet[4] << 8) | packet[5];
              if (moduleID[1]==0x01)
              {
                int SgnlPwr = packet[6];
                int SampleNumber = packet[8];                                                                                                                   
                int i;                                                                                                                                                                                                                                                                                                                                       
                if (SampleNumber >= 1) 
                  {                                                                                                       
                    analogSamples[1] = (packet[11] << 8) | packet[12];
                    analogSamples[2] = (packet[13] << 8) | packet[14];
                    analogSamples[3] = (packet[15] << 8) | packet[16];
                    analogSamples[4] = (packet[17] << 8) | packet[18];
                    delay(1);
                  }
                   int reading = analogSamples[1]; 
                   int reading_2 = analogSamples[2];
                   int reading_3 = analogSamples[3];
                   int reading_4 = analogSamples[4];
        // On converti la valeur lue  en millivolts
                   v[1] =((float) reading)*330/1024; 
                   v[2] =((float) reading_2)*330/1024;
                   v[3] =((float) reading_3)*330/1024;
                   v[4] =((float) reading_4)*330/1024;
                   delay(1);
              }
              else if (moduleID[1]==0x02)
              {
               int SgnlPwr = packet[6];
                int SampleNumber = packet[8];                                                                                                                   
                int i;                                                                                                                                                                                                                                                                                                                                       
                if (SampleNumber >= 1) 
                  {                                                                                                       
                    analogSamples[1] = (packet[11] << 8) | packet[12];
                    analogSamples[2] = (packet[13] << 8) | packet[14];
                    analogSamples[3] = (packet[15] << 8) | packet[16];
                    analogSamples[4] = (packet[17] << 8) | packet[18];
                    analogSamples[5] = (packet[19] << 8) | packet[20];
                    delay(1);
                   
                  }
                   int reading_5 = analogSamples[1]; 
                   int reading_6 = analogSamples[2];
                   int reading_7 = analogSamples[3];
                   int reading_8 = analogSamples[4];
                   int reading_9 = analogSamples[5];
        // On converti la valeur lue  en millivolts
                   z[1] =((float) reading_5)*330/1024; 
                   z[2] =((float) reading_6)*330/1024;
                   z[3] =((float) reading_7)*330/1024;
                   z[4] =((float) reading_8)*330/1024;
                   z[5] =((float) reading_9)*330/1024;
                   delay(1);
              }
              else if (moduleID[1]==0x03)
              {
               int SgnlPwr = packet[6];
                int SampleNumber = packet[8];                                                                                                                   
                int i;                                                                                                                                                                                                                                                                                                                                       
                if (SampleNumber >= 1) 
                  {                                                                                                       
                    analogSamples[1] = (packet[11] << 8) | packet[12];
                    analogSamples[2] = (packet[13] << 8) | packet[14];
                    analogSamples[3] = (packet[15] << 8) | packet[16];
                    analogSamples[4] = (packet[17] << 8) | packet[18];
                    analogSamples[5] = (packet[19] << 8) | packet[20];
                    delay(1);
                   
                  }
                   int reading_10 = analogSamples[1]; 
                   int reading_11 = analogSamples[2];
                   int reading_12 = analogSamples[3];
                   int reading_13 = analogSamples[4];
                   int reading_14 = analogSamples[5];
        // On converti la valeur lue  en millivolts
                   y[1] =((float) reading_10)*330/1024; 
                   y[2] =((float) reading_11)*330/1024;
                   y[3] =((float) reading_12)*330/1024;
                   y[4] =((float) reading_13)*330/1024;
                   y[5] =((float) reading_14)*330/1024;
                   delay(1);
              }
            }
             
      }
    }
else
{
digitalWrite(LED,LOW);
}
  }
 uint8_t readByte()
  {
    while (true)
      {
if(delayMax <= millis())
        {
            break;
        }
        if (Serial.available() > 0)
        {
          return Serial.read();
        }
      }
    return 0; 
  }

I put digitalWrite(LED, HIGH) if serial is available else LOW if serial is not available but it doesn't work... I don't know
I bought an other module ethernet ENC28J60...
23  International / Français / Re: Xbee Api + Serveur Web on: June 21, 2012, 04:11:32 am
Code:
void readpacket()
  {
  if (Serial.available() > 0)
    {
digitalWrite(LED,HIGH);
delay(1000);
    delayMax = millis()+50;
    int b = Serial.read();
    if (b == 0x7E)
      {
        packet[0] = b;                           
        packet[1] = readByte();
        packet[2] = readByte();
        int dataLength = (packet[1] << 8) | packet[2]; 
        for(int i=1;i<=dataLength;i++)
          {
            packet[2+i] = readByte();               
          }
        int apiID = packet[3];               
        if (apiID == 0x83)
            {

             
              moduleID[1] = (packet[4] << 8) | packet[5];
              if (moduleID[1]==0x01)
              {
                int SgnlPwr = packet[6];
                int SampleNumber = packet[8];                                                                                                                   
                int i;                                                                                                                                                                                                                                                                                                                                       
                if (SampleNumber >= 1) 
                  {                                                                                                       
                    analogSamples[1] = (packet[11] << 8) | packet[12];
                    analogSamples[2] = (packet[13] << 8) | packet[14];
                    analogSamples[3] = (packet[15] << 8) | packet[16];
                    analogSamples[4] = (packet[17] << 8) | packet[18];
                    delay(1);
                  }
                   int reading = analogSamples[1]; 
                   int reading_2 = analogSamples[2];
                   int reading_3 = analogSamples[3];
                   int reading_4 = analogSamples[4];
        // On converti la valeur lue  en millivolts
                   v[1] =((float) reading)*330/1024; 
                   v[2] =((float) reading_2)*330/1024;
                   v[3] =((float) reading_3)*330/1024;
                   v[4] =((float) reading_4)*330/1024;
                   delay(1);
              }
              else if (moduleID[1]==0x02)
              {
               int SgnlPwr = packet[6];
                int SampleNumber = packet[8];                                                                                                                   
                int i;                                                                                                                                                                                                                                                                                                                                       
                if (SampleNumber >= 1) 
                  {                                                                                                       
                    analogSamples[1] = (packet[11] << 8) | packet[12];
                    analogSamples[2] = (packet[13] << 8) | packet[14];
                    analogSamples[3] = (packet[15] << 8) | packet[16];
                    analogSamples[4] = (packet[17] << 8) | packet[18];
                    analogSamples[5] = (packet[19] << 8) | packet[20];
                    delay(1);
                   
                  }
                   int reading_5 = analogSamples[1]; 
                   int reading_6 = analogSamples[2];
                   int reading_7 = analogSamples[3];
                   int reading_8 = analogSamples[4];
                   int reading_9 = analogSamples[5];
        // On converti la valeur lue  en millivolts
                   z[1] =((float) reading_5)*330/1024; 
                   z[2] =((float) reading_6)*330/1024;
                   z[3] =((float) reading_7)*330/1024;
                   z[4] =((float) reading_8)*330/1024;
                   z[5] =((float) reading_9)*330/1024;
                   delay(1);
              }
              else if (moduleID[1]==0x03)
              {
               int SgnlPwr = packet[6];
                int SampleNumber = packet[8];                                                                                                                   
                int i;                                                                                                                                                                                                                                                                                                                                       
                if (SampleNumber >= 1) 
                  {                                                                                                       
                    analogSamples[1] = (packet[11] << 8) | packet[12];
                    analogSamples[2] = (packet[13] << 8) | packet[14];
                    analogSamples[3] = (packet[15] << 8) | packet[16];
                    analogSamples[4] = (packet[17] << 8) | packet[18];
                    analogSamples[5] = (packet[19] << 8) | packet[20];
                    delay(1);
                   
                  }
                   int reading_10 = analogSamples[1]; 
                   int reading_11 = analogSamples[2];
                   int reading_12 = analogSamples[3];
                   int reading_13 = analogSamples[4];
                   int reading_14 = analogSamples[5];
        // On converti la valeur lue  en millivolts
                   y[1] =((float) reading_10)*330/1024; 
                   y[2] =((float) reading_11)*330/1024;
                   y[3] =((float) reading_12)*330/1024;
                   y[4] =((float) reading_13)*330/1024;
                   y[5] =((float) reading_14)*330/1024;
                   delay(1);
              }
            }
             
      }
    }
else
{
digitalWrite(LED,LOW);
}
  }
 uint8_t readByte()
  {
    while (true)
      {
if(delayMax <= millis())
        {
            break;
        }
        if (Serial.available() > 0)
        {
          return Serial.read();
        }
      }
    return 0; 
  }

J'ai mis la fonction LED pour savoir si la liaison série arrive je met à l'état haut sinon je mets à l'état bas mais cela ne veut pas fonctionner...
24  International / Français / Re: Xbee Api + Serveur Web on: June 21, 2012, 02:13:53 am
Bonjour Barbudor

Je viens à vous car j'ai toujours ce problème, je vais donc debugguer pas à pas en mettant des LEDS sur la transmission et la conversion et voir comment cela se comporte.
Ensuite, j'ai acheté un autre module ethernet chinois ENC28J60, avec une bibliothèque différente cela me fera reprendre le programme au complet mais cela peut être une solution.
Merci
25  Using Arduino / Networking, Protocols, and Devices / Re: Xbee API ethernet problem HTML on: June 15, 2012, 03:38:35 am
It means that : The temperature displays on a page web and after few hours it does'nt display (error page). Then it can display again (without reset). Maybe it can come from the network which requests my arduino + ethernet shield in order to display a graph of these temperatures. I don't know.
26  Using Arduino / Networking, Protocols, and Devices / Re: Xbee API ethernet problem HTML on: June 14, 2012, 10:35:22 am
OK I will make it but I think the problem comes of the generation of the web page and of library ethernet because it works one time and then after error of page.

I will debug step by step not the choice..
27  Using Arduino / Networking, Protocols, and Devices / Re: Xbee API ethernet problem HTML on: June 14, 2012, 09:51:08 am
I receive information of xbees so it comes in my code where i do'nt know...

Do you have the library avr/wdt for the arduino?
28  Using Arduino / Networking, Protocols, and Devices / Re: Xbee API ethernet problem HTML on: June 14, 2012, 09:23:11 am
Upgrading IDE of arduino is not sufficient, my system stopped...I don't understand...
I try to put the watchdog in my code in order to see if it solves my problem...
29  Using Arduino / Networking, Protocols, and Devices / Re: Xbee API ethernet problem HTML on: June 13, 2012, 04:29:02 am
OK Ok it is not a watchdog, I just have to use the library <avr/wdt.h> and the command wdt_enable(WDTO_2S) for example. I hope that I would not use this command.
30  Using Arduino / Networking, Protocols, and Devices / Re: Xbee API ethernet problem HTML on: June 13, 2012, 02:33:23 am
I find a solution on the watchdog :

Code:
void (*resetFunc)(void) = 0; //declare reset function at adress 0
...
resetFunc();
...

What do you think of this?
Pages: 1 [2] 3 4 5