Show Posts
Pages: 1 ... 100 101 [102] 103 104 ... 238
1516  International / Français / Re: Une pause avec une interruption on: September 06, 2013, 03:09:41 am
Avec la librairie Sleep_n0m1

J'ai extrait le code d'un bout de programme que j'avais utilisé pour tester cette librairie sur une carte Seeduino Film.

Code:
#include <avr/pgmspace.h>
#include <Sleep_n0m1.h>

Sleep sleep;
volatile boolean aulit=false;

void goSleep(void){
  aulit=true;
}

void goToSleep(void){
  aulit=false;
  detachInterrupt(0);
  ADCSRA &= ~_BV(ADEN);     // turns ADC off
  delay(200);
//  while(digitalRead(2)==0);
  sleep.pwrDownMode(); //set sleep mode
  sleep.sleepInterrupt(0,FALLING); //sleep for: sleepTime
  ADCSRA |=_BV(ADEN);      // turns ADC on
  delay(200);
//  while(digitalRead(2)==0);
  attachInterrupt(0,goSleep,FALLING);
}

void setup(void) {
  pinMode(2, INPUT);  // bouton poussoir
  // autres initialisation
  attachInterrupt(0,goSleep,FALLING);
}

void loop(void) {
// picture loop 
//  u8g.firstPage();
  if (aulit) goToSleep();
 
  // L'application est là
 
 }

Je voulais garder le contrôle du moment où la mise en sommeil se produisait ce qui explique l'utilisation de goSleep et goToSleep.
Tu dois pouvoir appeler directement goToSleep par attachInterrupt.
La mise en veille et le réveil se font par appui sur un bouton connecté à l'entrée 2.
La mise en veille de l'ADC est un facteur important pour la réduction de la consommation.
1517  International / Français / Re: Petit Prolème avec mon code on: September 06, 2013, 01:44:31 am
Le Serial.print() surtout à 96000 bauds prend un certain temps.
Peut être cela te fait-il rater un événement fugitif sur un discret.
1518  International / Français / Re: Fonction sinus optimisée ? on: September 06, 2013, 01:38:21 am
En même temps avec une Due c'est pas la RAM qui manque. Tu peux très bien avoir en mémoire une table de sinus calculée pendant le setup(). C'est pas ça qui va planter le processeur.
Si tu fais une table de sinus même de 5000 entiers cela ne fera jamais que 10k sur la quantité de RAM disponible ce n'est pas un gros problème.
1519  International / Français / Re: Fonction sinus optimisée ? on: September 05, 2013, 03:40:09 pm
En y réfléchissant, 2µs !! cela me parait un peu trop rapide.
Il faudrait que je vérifie s'il n'y a pas une embrouille avec la fonction micros() sur le Due.
Demain je mettrai un coup d'oscilloscope pour vérifier.
1520  International / Français / Re: Fonction sinus optimisée ? on: September 05, 2013, 02:51:54 pm
Sachant que j'ai mesuré à l'oscilloscope que avec et sans la fonction sinus j'ai un écart de 80ms. Ce qui me fait 5000 * sin() = 80ms.
Je reprecise que la génération des 5000 points du tableau sur 20ms ca ne pose pas de soucis.

Là en fait j'ai un doute. Parce que moi aussi j'ai une Due.
Je n'avais pas eu le temps ces derniers jours mais ce soir je l'ai ressortie et pour faire un tableau de 5000 sinus il me faut 2µs. Alors même en admettant que tu fasses plus que calculer des sinus tu me vois quand même un peu surpris.
N'aurais-tu pas quelques opérations inutiles dans la boucle de calcul.

Le programme en question. Je calcule le sinus et je normalise sur 12 bits comme si j'utilisais un CAN 12 bits.
Code:
void setup() {
  Serial.begin(9600);

}

void loop() {
int tab[5000];
int i;
float val=0,inc;
unsigned long temps1,temps2;

temps1 = micros();
inc = 2*3.1415926/5000;
for(i=0; i<5000;i++){
  tab[i]=(int)(sin(val)*2047.0+2048.0);
  val+=inc;
}
temps2 = micros();
Serial.print("temps1=");
Serial.println(temps1);
Serial.print("temps2=");
Serial.println(temps2);
Serial.println(temps2-temps1);
delay(100);
}
1521  International / Français / Re: Problème USART - ATMega2560 on: September 05, 2013, 02:11:42 pm
Quote
// Lecture des dernieres valeurs x, y
Serial1.flush();
Erreur !!!
Serail.flush attend que le buffer d'émission soit vide voir là --> http://arduino.cc/en/Serial/Flush
1522  International / Français / Re: Problème avec moniteur serie on: September 05, 2013, 10:00:52 am
Pour ton 1er problème:
Le message passe peut être avant que la fenêtre du terminal soit complètement active.
Essaye de faire un reset manuel avec le poussoir de la carte.

Pour le 2nd problème
C'est pas le programme qui se plante c'est plutôt le terminal qui se plante.
J'ai un problème similaire lorsque j'envoie des caractères à la suite sans arrêt.
1523  International / Français / Re: Petit Prolème avec mon code on: September 05, 2013, 02:53:26 am
Vu la structure de ton programme:
    - soit tu n'entres pas dans le premier if (BrassageOK est-il à false?)
    - soit tu ne sors pas de Brassage()
1524  International / Français / Re: Trop if / else if ? on: September 04, 2013, 03:19:16 pm
Quand vous parlez de tableaux de char c'est faire la même chose en utilisant des type char ?
Ce que propose MiGaNuTs c'est de remplacer les Strings par des tableaux de char. Cela utilise moins de mémoire. Les objets Strings sont associés à une librairie conséquente.

De mon coté ce que je suggérais c'était de modifier la structure du programme pour le rendre plus simple, plus lisible.
Tu fais un tableau avec tous les mots clés que tu attends. Si tes mots clés sont des chaînes c'est effectivement un tableau de tableau de char
Une boucle parcourt le tableau et compare la chaîne reçue avec les différents mots clés. Lorsqu'il y a correspondance, l'index courant te permet de retrouver dans un second tableau le message à envoyer.
Au final, tu as juste une boucle et une comparaison de chaînes au lieu d'en avoir plusieurs. Et les tableaux sont plus faciles à maintenir si tu dois faire des modifications.
1525  International / Français / Re: moteur 14A sur controleur 12A ? on: September 04, 2013, 03:07:11 pm
bonjour!
je souhaite acheter un moteur 24v qui consomme 14A. le controleur supporte 12A. y a t'il un risque pour le controleur? merci d'avance!
En général on fait plutôt le contraire. On se donne une bonne marge pour ne pas surcharger le contrôleur.

PS: est ce que quelq'un saurait comment fixer les roues arrieres sur l'axe sans qu'elle bouge? merci!
Cela dépend de la roue et de l'axe choisi. Par exemple:
    - une clavette qui entre dans une rainure faite dans le moyeu de la roue et sur l'axe
    - un axe avec un méplat ayant un plat complémentaire sur le moyeu de la roue
    - une (ou des) broche(s) entraînées par l'axe et qui entre dans des troues sur la roue
1526  Products / Arduino Due / Re: analogRead on DUE produces erratic results when requests are long between on: September 04, 2013, 12:25:30 pm
may be the sample and hold is in hold state between two conversion
1527  International / Français / Re: Trop if / else if ? on: September 04, 2013, 10:19:19 am
Quote
J'ai la même chose, j'en décommente un de plus et ça fonctionne plus
C'est pas pour être blessant mais la méthode des if ... then ... else ..., ça va pour 2 ou 3 cas mais après c'est vraiment bourrin comme procédé.
Je pense qu'avec un tableau tu pourrais faire quelque chose de beaucoup plus propre.
1528  International / Français / Re: Realisation d'un colorimetre avec un TCS3200 on: September 04, 2013, 10:14:22 am
Tu ferais bien d'aller faire un tour là : http://www.ams.com/eng/Products/Light-Sensors/Color-Sensor/TCS3200
Dans les notes d'application (onglet sur la droite de la page) il y a une note d'application qui donne les équations pour le calcul de la température de couleur et ils n'ont pas les mêmes paramètres que toi. Les paramètres donné par AMS doivent être compensés pour la réponse de leur senseurs. Alors que les équations théoriques sont basées sur la réponse de l'oeil si mes souvenirs sont bons.
1529  International / Français / Re: Les détecteurs de luminosité détectent-ils le clignottement d'une LED on: September 04, 2013, 05:53:41 am
Quote
J'ai remarqué qu'une LED présente sur ce même compteur clignote à chaque Wh consommé (soit 10 fois plus de précision)
Non 10x plus de résolution. La précision reste la même.
Un affichage de puissance au watt près est-ce vraiment indispensable....
1530  International / Français / Re: Trop if / else if ? on: September 04, 2013, 01:23:58 am
Quote
bug du compilo ?
Quel bug du compilo?
Le message retourné?
Pages: 1 ... 100 101 [102] 103 104 ... 238