Pages: [1]   Go Down
Author Topic: Arduino + Flash, pilotage de leds RVB  (Read 933 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 4
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

J'utilise l'exemple de Kasper Kamperman (http://www.arduino.cc/playground/Interfacing/Flash) pour allumer des leds via PWM depuis flash.
J'envoi une string sous la forme "255,255,255" a arduino.
ensuite je prends les trois premiers caractère de mon tableau et les stocks dans un tableau de caracteres puis de atoi ce tableau pour en faire un entier et enfin je fais mon analogWrite sur mon pin.

En résumé dans mon IDE arduino cela donne a peu pres ca :

Code:
char tempStringRed[4];

char valpwmRed;

char serInString[20];

int ledRed = 9 ;
int ledGreen = 10 ;
int ledBlue = 11 ;

void readSerialString (char *strArray)
{
 int i = 0;      
  if(serialAvailable())        
  { while (serialAvailable())    
      { strArray[i] = serialRead();      
        i++;    
      }      
  }      
}

boolean isStringEmpty(char *strArray)
{ if (strArray[0] == 0) return true;
  else                           return false;
}



void setup()
{
  
  Serial.begin(57600);       // start serial port
  
  pinMode(ledRed, OUTPUT);
  pinMode(ledGreen, OUTPUT);
  pinMode(ledBlue, OUTPUT);
  
}

void loop ()
{

  readSerialString(serInString); // stock data recu dans un tableau de caracteres

  if(isStringEmpty(serInString) == false)  // si le tableau precedent n'est pas vide...
  {
      
         tempStringRed[0] = serInString[0] ;
         tempStringRed[1] = serInString[1] ;
         tempStringRed[2] = serInString[2] ;
         tempStringRed[3] = 0; // dans l'exemple, le tab et de taille 4 est le dernier emplacement est setté à 0 si quelqu'un peut m'expliker... en tt ca a l'air d'encore moins marcher sans ca
      
         valpwmRed = atoi(tempStringRed);
          
         analogWrite(ledRed,valpwmRed);

  }

  for (int i=0; i <= 100; i++)
  {
       serInString[i]=0;  //nettoyage du tableau
  }
  
  delay(50); // attends 50ms
}

Voilà.

Bon.
Cette solution ne marche pas. Quelqu'un saurait il pourquoi et mieux, saurait il comment faire m
« Last Edit: June 03, 2007, 11:26:25 am by pioup » Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 4
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

char valpwmRed; ne devrait t il pas être int valpwmRed;
Logged

Pages: [1]   Go Up
Jump to: