Show Posts
Pages: 1 ... 43 44 [45] 46 47 ... 128
661  International / Français / Re: faire du PWM pour bouger une membrane de HP on: July 08, 2013, 06:14:02 am
En jouant au mieux avec la configuration des timers (horloge système = 16 MHz et prescaller = 1024) on peut descendre jusqu'à 31 Hz c'est tout.
La PWM n'apportera rien de plus pour baisser la fréquence.

Si tu veux descendre en dessous il faut passer par des circuits diviseurs extérieurs, il y en a pléthore dans la série 74HCxxxx dont des CI qui font directement des divisions par 2, 5, 10 et16.
662  International / Français / Re: Caméra thermique faible résolution pour Arduino on: July 08, 2013, 05:50:19 am
Pour les activitées commerciales il y a un sous forum dans la partie anglophone :
http://forum.arduino.cc/index.php?board=26.0

Les Nord américains n'ont pas le même rapport avec" l'entraide" que nous, l'argent est partout chez eux.
Il  est même possible de vendre son sang.
663  International / Le bar / Re: Lecture, donnée moi des noms ! on: July 08, 2013, 05:42:07 am
http://www.dicosmo.org/HoldUp/HoldUpPlanetaire.pdf

Ou comment des escrocs se sont emparés du PC.
664  Using Arduino / Sensors / Re: TMP36 only 4.8 volts in USB on: July 08, 2013, 05:38:31 am
Best : use internal reference -> see analogReference()
The TEMP36 give 10mV/°C so 100°C -> 1V and internal reférence is 1,25V.
665  Using Arduino / Project Guidance / Re: fist pin to go high? on: July 08, 2013, 05:34:46 am
The UNO with ALL pins able to generate an interrupt (PCINTX) is also a good choice.
Read the Atmel datasheet, not arduino documentation which is not complete.
666  Using Arduino / Sensors / Re: Too much variations in temperature? on: July 08, 2013, 02:44:58 am
The most important is to remember that Aref is dirrectly connect to the internal reference.
On Aref you can mesure the exact value of the "2.56V internal reference".
And if Aref is noisy Mesurment is also noisy.

ATMega328 Datasheet (for ATMega2560 it is the same):
Quote
ADC Voltage Reference
The reference voltage for the ADC (VREF) indicates the conversion range for the ADC. Single
ended channels that exceed VREF will result in codes close to 0x3FF. V REF can be selected as
either AVCC, internal 1.1V reference, or external AREF pin.
AVCC is connected to the ADC through a passive switch. The internal 1.1V reference is gener-
ated from the internal bandgap reference (VBG) through an internal amplifier. In either case, the
external AREF pin is directly connected to the ADC, and the reference voltage can be made
more immune to noise by connecting a capacitor between the AREF pin and ground
.
VREF can also be measured at the AREF pin with a high impedance voltmeter. Note that VREF is a high
impedance source, and only a capacitive load should be connected in a system.

If the user has a fixed voltage source connected to the AREF pin, the user may not use the other
reference voltage options in the application, as they will be shorted to the external voltage.
If no
external voltage is applied to the AREF pin, the user may switch between AVCC and 1.1V as ref-
erence selection.

The first ADC conversion result after switching reference voltage source may
be inaccurate, and the user is advised to discard this result.


Edit : doing an average without remove the origin of the default is like "to hide the dust under the carpet"
667  Using Arduino / Sensors / Re: Too much variations in temperature? on: July 07, 2013, 02:00:57 am
Quote
Can I put this capacitor somewhere in the circuit on the breadboard
No.
Aref is connected dirrectly to the heart of the ADC. 
If Aref is noisy, measurement will be noisy.

The decoupling of Aref in entrance of the  board does not work because after the decoupling capacitor Aref track is too long and acts as an antenna. This is a design error of UNO board and probably Mega
You must bypass the interference signals with a soldered capacitor as close as possible to the microcontroller.
668  International / Français / Re: Entrée Reset et petit problème on: July 06, 2013, 02:43:28 pm
Sur le schéma de la carte il y a déjà une résistance de 10 k entre le bouton raz et l'alim 5V
669  Using Arduino / Sensors / Re: Too much variations in temperature? on: July 06, 2013, 01:26:59 pm
It is best to remove the defect with a capacitor rather than hide it with an averaging.
What is your board ? Uno or Mega?

If it is a UNO you can solder a 100 nF capacitor directly on the support of micro-controller.
On my UNO board the improvement was obvious.
Only capacitor at the bottom is helpful.
The second one, to the right,  is difficult to sold and does not bring much improvement.

If it is a Mega board nothing is possible with SMD ATMega2560

Edit : the pin which is decoupled is Aref.
670  International / Français / Re: recherche moteur très fort couple on: July 05, 2013, 12:39:17 pm
C'est pour du télégraphe CHAPPE ?
                                       Ok      []------>
671  International / Français / Re: Utilisation de 2 lecteurs SD on: July 05, 2013, 09:36:33 am
Les lecteurs SD se commandent en SPI.
En SPI :
1) Un seul  composant peut être commandé à la fois
2) Chaque composant doit avoir son ChipSelect personnel.
672  Using Arduino / Sensors / Re: Analog-to-digital conversion on Arduino Uno R3 and Arduino Mega 2560? on: July 05, 2013, 06:01:04 am
No it's false.
As for every AVR you can enhance the AtMega328p ADC resolution. See Atmel Application Note : AVR121.

Uno board is for initiation only, she does it well, it was not expected for professionnal use.
I don't know the Mega layout but Uno layout is very poor concerning analogical signals.
No analogical ground near A0-A5 pins, the layout of Aref line is an horror : I have to sold 100nF capacitor directly on the micro socket to have stable measurment, and so on ............
673  International / Français / Re: millis() et interruptions on: July 04, 2013, 11:52:07 am
J'avais lu aussi mais j'avais compris qu'on ne pouvait pas mesurer moins de 4µs ce que j'avais traduit par 4 cycles d'horloge nécessaires pour faire le travail et non pas que c'était le pas de mesure ce qui est différent.
674  International / Français / Re: millis() et interruptions on: July 04, 2013, 11:08:39 am
@bricofoy
Je pense qu'on ne s'est pas compris je parlais de la macro de l'avr-libc "_delay_us()" et non pas de la fonction arduino.

@Tous:
Il se trouve que depuis 3 jours je m'intéresse de près au timer et donc je risque fort de faire le chieur de service. smiley-mr-green
J'ai donc commencé par faire un petit programme pour voir l'état des registres des timers à la mise sous tension.
Le code est développé et téléversé dans l'Ide arduino pour ne pas risquer de fausser quelque chose.
Code:
void setup()
{
  Serial.begin(9600) ;
  test_registre() ;
}

void loop()
{

}

void test_registre()
{
  Serial.println("Timer 0")  ;
  Serial.print("TCCR0A = ") ;  Serial.println(TCCR0A);
  Serial.print("TCCR0B = ") ;  Serial.println(TCCR0B);
  Serial.print("TCNT0  = ") ;  Serial.println(TCNT0);
  Serial.print("OCR0A  = ") ;  Serial.println(OCR0A);
  Serial.print("OCR0B  = ") ;  Serial.println(OCR0B);
  Serial.print("TIMSK0 = ") ;  Serial.println(TIMSK0);
  Serial.print("TIFR0  = ")  ;  Serial.println(TIFR0);

  Serial.println("\nTimer 1") ;
  Serial.print("TCCR1A  = ") ;  Serial.println(TCCR1A);
  Serial.print("TCCR1B  = ") ;  Serial.println(TCCR1B);
  Serial.print("TCCR1C  = ") ;  Serial.println(TCCR1C);
  Serial.print("TCNT1H  = ") ;  Serial.println(TCNT0);
  Serial.print("TCNT1L  = ") ;  Serial.println(TCNT0);
  Serial.print("OCR1AH  = ") ;  Serial.println(OCR1AH);
  Serial.print("OCR1AL  = ") ;  Serial.println(OCR1AL);
  Serial.print("OCR1BH  = ") ;  Serial.println(OCR1BH);
   Serial.print("OCR1BL  = ") ;  Serial.println(OCR1BL);
  Serial.print("TIMSK1  = ") ;  Serial.println(TIMSK1);
  Serial.print("TIFR1   = ")  ;  Serial.println(TIFR1);
  Serial.print("ICR1H   = ")  ; Serial.println(ICR1H);
   Serial.print("ICR1L   = ")  ; Serial.println(ICR1L);
 
   Serial.println("\nTimer 2 \n");
  Serial.print("TCCR2A = ");  Serial.println(TCCR2A);
  Serial.print("TCCR2B = ");  Serial.println(TCCR2B);
  Serial.print("TCNT2  = ");  Serial.println(TCNT2);
  Serial.print("OCR2A  = ");  Serial.println(OCR2A);
  Serial.print("OCR2B  = ");  Serial.println(OCR2B);
  Serial.print("TIMSK2 = ");  Serial.println(TIMSK2);
  Serial.print("TIFR2  = ");  Serial.println(TIFR2);
  Serial.print("ASSR   = ");  Serial.println(ASSR);

 Serial.println("");
 Serial.print("GTCCR  = ");  Serial.println(GTCCR);
}

Le résultat obtenu est le suivant :
Code:
Timer 0
TCCR0A = 3
TCCR0B = 3
TCNT0  = 161
OCR0A  = 0
OCR0B  = 0
TIMSK0 = 1
TIFR0  = 6

Timer 1
TCCR1A  = 1
TCCR1B  = 3
TCCR1C  = 0
TCNT1H  = 146
TCNT1L  = 206
OCR1AH  = 0
OCR1AL  = 0
OCR1BH  = 0
OCR1BL  = 0
TIMSK1  = 0
TIFR1   = 7
ICR1H   = 0
ICR1L   = 0

Timer 2

TCCR2A = 1
TCCR2B = 4
TCNT2  = 129
OCR2A  = 0
OCR2B  = 0
TIMSK2 = 0
TIFR2  = 7
ASSR   = 0

GTCCR  = 0


De TCCR0B = 3, TCCR1B  = 3, TCCR2B = 4 je déduis que d'après la valeurs des bits T0(CS02,CS01,CS00), T1(CS12,CS11,CS10), T2(CS22,CS21,CS20):
Le timer 0 utilise un diviseur (prescaler) par 64, soit Ftimer = 16e6/64 = 250 kHz -> période = 4µs.
Le timer 1 utilise aussi un diviseur par 64.
Le timer 2 utilise aussi un diviseur par 64.

Donc ma question : comment fait t-on pour compter avec un pas de 1µs quand on dispose d'une horloge de période 4 µs.

Ou je suis passé à coté ou alors je me met le doigt dans l'œil jusqu'au coude.
675  International / Français / Re: millis() et interruptions on: July 04, 2013, 07:13:54 am
Quote
comment on dit overflow en français ?
Débordement de capacité me parait bien ou raz puisque quand la capacité maximale est atteinte le registre passe à 0 au coup d'horloge suivant. Et raz c'est plus court qu'"Overflow".  smiley-mr-green

Donc c'est le timer 0, mais que se passe-t-il si on veut faire de la PWM ?
1) Les broches D5 et D6 qui dépendent de T0 serait-elle interdites si on veut utiliser millis() ?
2) Si on désire utiliser la fonction millis() peut-on, ou pas, utiliser T0 pour un usage personnel.

C'est vraiment un sujet pas clair. Même avec l'avr-libc je n'ai pas trouvé  de documentation sur "la liaison avec le matériel" de la macro _delay_us().
Pages: 1 ... 43 44 [45] 46 47 ... 128