Show Posts
Pages: [1] 2 3 ... 6
1  International / Français / Re: Projet : IRTiny_Cat , Question !!! on: March 22, 2013, 02:09:51 pm
Salut ta toua, c'est à peut pres ce que je pensais pour chaque trame IR, par contre j'ai pas d'oscilloscope, enfin j'ai un Xminilab que je me suis acheté derniérement, et j'ai un peu de mal à comprendre comment marche le bouzzin...j'aurais aimé pouvoir le brancher sur le PC, mais le FW n'est pas compatible, il faut que je flash et j'ai pas de prog AVRISP PDI pour le flasher donc je suis un peu bloqué (je pense pas qu'un arduino puisse le faire ..??).
Donc pour le moment j'ai juste pu voir que la fréquence qui est bien en 38Khz (enfin plutot 38.46Khz), mais j'ai pas encore capté comment voir le signal en totalité et calculé le temps d'une trame, c'est la première fois que je me sert d'un "oscilloscope" (les guillemets sont pour le pseudo oscillo, qui reste basique mais qui va me permettre de mettre un petit pied dedans...j'avais pas envie de dépenser plus que 50€ pour quelquechose que je ne connais/maitrise pas)

Pour la partie Réglage de l'horloge interne, j'ai fait ça avec Tiny Tuner, et j'ai cru comprendre qu'il fallait mettre dans le setup la valeur retourné par tiny tuner, en l'occurence 0x56 pour l'ATtiny85 que j'ai; mais j'ai peut être loupé un truc !?!

Pour ce qui est du Watchdog et du mode veille, j'ai brodé avec ce que j'ai lu, j'avais posé une question ici mais le topics est parti au oubliette sans réponse, donc j'ai fait comme je le pensais, aprés si il y a des erreurs dans ma façon je reste ouvert à tes conseils pour modifier le code....

En tous les cas merci à toi ^^


2  International / Français / Projet : IRTiny_Cat , Question !!! on: March 20, 2013, 04:10:14 pm
Bonsoir à vous, j'essaye de faire un petit projet à base d'ATtiny85 pour repérer le chat dans une piéce (chambre bébé), ça devrais marcher avec du code IR sur le principe des télécommandes.
J'ai fait le code pour l'émetteur sur ATtiny85, avec un mode sleep/Watchdog entre deux envois de code, ça marche mais j'ai un soucis au niveau du timing...

Dans le code la ligne : int WDT_Time = 7;// Réglage du délais de veille: 0=16ms, 1=32ms, 2=64ms, 3=125ms, 4=250ms, 5=500ms, 6=1 sec, 7=2 sec, 8=4 sec, 9= 8sec, marche bien quand je saisie 7/8/9 , Régle le temps de veille du timing Watchdog.
Mais si je saisie 6 (donc timing de 1sec de "veille") ça bloque complétement, en principe l’envoi du code prend moins de 1 seconde, je ne comprends donc pas pourquoi ça bloque avec le paramétrage de veille à 1Sec, en dessous de 6 ça me parait juste pour l'envois du code et le bon déroulement du sketch....
C'est pas que c'est bloquant pour le reste de mon projet, mais j'aime bien savoir pourquoi ça marche pas, et là je vois pas vraiment et comme on dit un oeil extérieur (et qui plus est expérimenté) est toujours source de bonne idée pour résoudre des Couacs...

Donc voila mon code :

Code:
#include <avr/sleep.h>
#include <avr/wdt.h>

#define IR_Pin PORTB // Registre du PORTB Définit en Ecriture et Lecture
#define IR_Led 3 // Définit le pin de la Led IR > Pin2 (PB3)

byte Code_IR = B01010101;//Code IR envoyé
int WDT_Time = 7;// Réglage du délais de veille: 0=16ms, 1=32ms, 2=64ms, 3=125ms, 4=250ms, 5=500ms, 6=1 sec, 7=2 sec, 8=4 sec, 9= 8sec
byte WDP_Set; // Réglage WDP (bit de réglage délais de veille)

void setup(){
   Set_Time_WDT(WDT_Time); //Délais de veille
   OSCCAL = 0x56; // Calibration Oscillateur Interne de l'ATtiny85, voir Tiny Tuner
   DDRB |= _BV(IR_Led); // Met le pin IRled en OUTPUT > 0000 1000
   ADCSRA = 0; // Désactive l'ADC (Analog to Digital Converter) pour économiser du courant en mode veille
}

void loop(){
   IRCode(); // Lance la Boucle IRCode
   DDRB &= ~_BV(IR_Led); // Mets le port de la Led en INPUT pour économiser du courant
   Veille(); // Mise en veille de l'ATtiny
   DDRB |= _BV(IR_Led); // Remet le port en OUTPUT
}

void Veille() { // Met l'ATtiny en veille
   MCUSR &= ~(1<<WDRF);  // Met à 0 le bit "Watchdog Reset Flag" dans le Registre MCU (Registre de statut) qui est remis à 1 quand l'ATtiny sort de veille (indicateur sur la façon de sortir du reset)
   WDTCR = _BV (WDCE) | _BV (WDE); // Régle les bits WDE et WDCE sur 1 du WDTCR (Watchdog Timer Control Register) pour pouvoir configurer les délais de mise en veille
   WDTCR = _BV (WDIE) | WDP_Set; // Met le bit WDIE sur 1, ce qui active l'interruption du watchdog et met le bit WDE à 0, les bits WDP sont réglé et à la fin du délais configuré le Watchdog fait un reset
   wdt_reset();
   set_sleep_mode (SLEEP_MODE_PWR_DOWN);  //ZZZzz..ZZzzz..Zzz
   sleep_enable();
   sleep_cpu ();   
   sleep_disable();
}

void pulseIR(long microsecs){ // Envoit les pulsations à 38Khz durant le temps définit par les microsecondes de PulseIR
   while (microsecs >= 0){ // Tant que les microsecondes de la valeur pulseIR n'ont pas atteint 0 on continu
     IR_Pin &= ~_BV(IR_Led); // Met le Pin2 (PB3) à l'état haut
     delayMicroseconds(13); //38Khz = 13 microsecondes haut + 13 microsecondes bas
     IR_Pin |= _BV(IR_Led); // Met le Pin2 (PB3) à l'état bas
     delayMicroseconds(13); //38Khz = 13 microsecondes haut + 13 microsecondes bas
     microsecs -= 26; // on Retire 26 microsecondes de la valeur PulseIR
    }
}

void IRCode() {
  pulseIR(2600);
delay(26);
for(int x = 0 ; x < 8; x++){
if ( bitRead(Code_IR, x) == 1){
pulseIR(780);
delayMicroseconds(780);
}
else{
pulseIR(390);
delayMicroseconds(390);
}
}
}

void Set_Time_WDT(int Time){ // Conversion valeur du délais de veille en Décimal pour régler les bits WDP
   if ( Time <= 7 ) WDP_Set = Time ;
   if ( Time == 8 ) WDP_Set = ( Time * 4 ) ;
   if ( Time == 9 ) WDP_Set = ( Time * 4 ) + 1 ;

}

ISR(WDT_vect){ // Vecteur Watchdog lancé à la fin du délais configuré
   wdt_disable();
}

Vala Merci à vous pour l'éventuelle aide....
3  International / Français / Sleep et Watchdog avec ATtiny85 on: March 08, 2013, 04:37:37 pm
Salut les gens, j'ai un petit projet en cours et pour le moment j'essaye de comprendre un peu le fonctionnement de la mise en veille et du réveil d'un ATtiny85 pour éviter de pomper trop de jus durant les quelques seconde pendant lesquels mon projet ne va rien faire....
J'ai essayé de voir ça avec une simple LED qui clignote s'allume durant deux seconde puis s’éteint, lancant le mode dodo et chien de garde de l'ATtiny85, je penses plus ou moins avoir compris, mais j'aimerais avoir un avis externe sur ce que j'ai pas bien fait ou pas fait comme il fallait.
Donc voila le code
Code:
#include <avr/sleep.h>
#include <avr/wdt.h>

#define LED_Pin PORTB // Registre du PORTB Définit en Ecriture et Lecture
#define Led 0 // Définit le pin de la Led IR

int WDP_Set; // Réglage WDP (bit de réglage délais de veille)

void setup(){
Set_Time(7); // Réglage du délais de veille: 0=16ms, 1=32ms, 2=64ms, 3=125ms, 4=250ms, 5=500ms, 6=1 sec, 7=2 sec, 8=4 sec, 9= 8sec
DDRB |= _BV(Led); // Met le pin Led en OUTPUT
OSCCAL = 0x56; // Calibration Oscillateur Interne de l'ATtiny85, voir Tiny Tuner
ADCSRA = 0; // Désactive l'ADC (Analog to Digital Converter) pour économiser du courant en mode veille
}

void loop(){
     LED_Pin |= _BV(Led); // Met le Pin à l'état haut
     delay(2000);
     LED_Pin &= ~_BV(Led); // Met le Pin à l'état bas
DDRB &= ~_BV(Led); // Mets le port de la Led en INPUT pour économiser du courant
     Veille(); // Mise en veille de l'ATtiny
   DDRB |= _BV(Led); // Remet le port en OUTPUT
}

void Set_Time(int i){ // Conversion valeur du délais de veille en Décimal pour régler les bits WDP
if ( i > 7 ) WDP_Set = ( i * 4 ) ;
else WDP_Set = i;
}

void Veille() { // Met l'ATtiny en veille, l'ATtiny se réveille quand le délais de veille (watchdog) arrive à 0
MCUSR &= ~(1<<WDRF);  /* Met à 0 le bit "Watchdog Reset Flag" dans le Registre MCU (Registre de statut)
     qui est remis à 1 quand l'ATtiny sort de veille (indicateur sur la façon de sortir du reset)*/
WDTCR = _BV (WDCE) | _BV (WDE); // Régle les bits WDE et WDCE sur 1 du WDTCR (Watchdog Timer Control Register) pour pouvoir configurer les délais de mise en veille
WDTCR = _BV (WDIE) | WDP_Set; /* Met le bit WDIE sur 1, ce qui active l'interruption du watchdog et met le bit WDE à 0, les bits WDP sont réglé et à la fin du délais
configuré le Watchdog fait un reset */
wdt_reset(); // ???
set_sleep_mode (SLEEP_MODE_PWR_DOWN);  //ZZZzz..ZZzzz..Zzz
sleep_enable();
sleep_cpu ();  
sleep_disable();
}

ISR(WDT_vect){ // ??? Vecteur Watchdog lancé à la fin du délais configuré
wdt_disable();  // ???
}


Quelques questions:
-Les commentaires correspondent bien aux commandes?
-le wdt_reset et wdt_disable ont quel incidence sur les registres qu'on manipule pour régler le watchdog , j'ai pas bien saisie ces deux parties?
-si je désactive le ADCSRA dans le setup cela à une grande influence sur le reste du code si je ne me sert pas de conversion analogique vers digital?
-le bout de code que j'ai fait est t'il convenable ou c'est un peu branlant?
-Avec ce bout de code l'ATtiny85 consomme 26.5mA avec la LED allumé et 0.03mA en veille, c'est correct ou je peux encore descendre en veille?

Vala Merci à vous pour vos réponses.

A+
4  International / Français / Re: Sanguinololu et Lit chauffant Reprap on: March 15, 2012, 01:54:12 pm
Ok Merci al1fch, je vais refaire mon cablage de suite....trop hate de la brancher mais j'avais pas envie de griller quoi que se soit avec un mauvais branchement smiley

A+
5  International / Français / Sanguinololu et Lit chauffant Reprap on: March 15, 2012, 01:16:02 pm
Salut à vous, je sais que le sujet et un peu hors sujet mais je galére et plus je lit de topics sur le forum Reprap plus je suis perdu....donc comme je sais qu'ici y'a des ti génie en électronique je pense que j'aurais plus de chance à avoir ma réponse, pis bon la Carte qui controle la Reprap est sur la base de l'arduino ^^

Donc voila j'arrive pas à cabler mon lit chauffant sur ma Longboat Prusa, le wiki est totalement faux ou mal finit à ce niveau et il ne me reste plus que ça à faire, j'ai récupéré un schéma qui est bon, mais je ne vois pas ou le Gain, la Source et la Gate sur le schéma, le symbole sur la datashet est pas le méme :
voila le schéma:


et voila le Datashet > Link

Si une ame généreuse peut me dire ou se trouve le Gain, Gate et Source sur le schéma se serait vraiment terrible ^^
6  International / Français / Re: Comment débuter.. on: January 30, 2012, 01:25:14 pm
Salut à toi amis Airsofteur, et oui le airsoft c'est plus ou moins pareil que le paintball sauf que le paintball est un sport avec des régles à respecter, et que les billes de paintball sont 100% biodégradable, contrairement aux billes d'airsoft (et me dit pas oui mais y'en a qui utilise des billes bio, parce que je te répondrais que une infime partie des airsofteurs en utilisent parce que celle ci sont friable et ne tire pas droit...), et le fait de jouer un peu à l'arrache n'importe où me dérange un tant soit peu, mais bon c'est pas le débat ici  smiley-mr-green....

Pour ce qui est de ton projet, avec le Arduino uno ou Duemilanove t'auras large assez de pin pour faire ce que tu as envie de faire, voir méme t'auras plein de pin de libre pour "upgrader" ta bombe factice, donc tu peux y aller ^^.

Je te conseil par la même occasion le siteMon Club Elec qui te permettra de te familliariser avec l'arduino avec des codes simples et bien expliqué pour le reste Google sera ton meilleur amis.

Bien à toi.
7  International / Français / Re: I2C Multifunction Shield. on: January 26, 2012, 02:21:53 am
Salut tiens jette un oeil sur cette Page, tu devrais trouver ce dont tu as besoin pour ton LCD/Keypad.

A+
8  International / Français / Re: Premier Projet Bombe Factice pour Partie Paintball on: January 17, 2012, 07:47:04 am
ouai un tilt ^^, j'y ai pensé j'en ai un mais je ne sais pas si je vais l'utiliser, disons que je verrais si il me reste un pin de libre parce que là j'suis un peu limite  smiley-mr-green
9  International / Français / Re: Premier Projet Bombe Factice pour Partie Paintball on: January 17, 2012, 05:59:23 am
Salut,

@klgui4 Ben en méme temps j'ai pas trouvé le moyen de faire marcher le bouzin sans jus, mais je reste ouvert à toute proposition pour me passer de la batterie  smiley-mr-green

@poisson_dino ben disons que c'est quand méme une usine à gaz mon projet, et que je doute fortement que les terroristes se fassent autant ch*** pour faire un truc qui explose, et je vois encore moins un vilain pas beau barbu faire une vrai bombe en suivant mon exemple, avec Pad NES, afficheur LCD et tout le toutim ^^

Quoi qu'il en soit merci de vos retours  smiley
10  International / Français / Re: [Résolu 1/2] Arduino, Attiny85 et SD player d'ELM Chan via I2C on: January 16, 2012, 01:45:47 pm
Salut, bon je reviens sur ce montage, d'une part parce que ça m'intrigue, et d'une autre part parce que j'aimerais vraiment intégrer un lecteur SD à mon projet, et j'ai un peu matter sur la toile mais y'a rien de comparable au lecteur d'ELM Chan transformé par ELO-WEB....enfin si mais trop cher.

Alors déja @al1fch j'ai cablé le reset en direct sur un pin arduino pour faire un reset, et en direct sur l'arduino ça marche pas, je suis passé par un 2N3904, et le reset se fait nickel, faut mettre un temps de latence entre l'appuis du reset et le lachage virtuel, et aussi un petit temps de démarrage pour envoyer une commande, donc merci à toi :

Code:
#include <Wire.h>
const int reset = 2;
int count = 0;

void setup()
{
  pinMode(reset, OUTPUT);
  digitalWrite(reset,1);
  Wire.begin();

}


void loop()
{

  if(count < 3){
  Wire.beginTransmission(85);
  Wire.send(2);
  Wire.endTransmission();
  delay(2000);
  digitalWrite(reset,0);
  delay(10);
  digitalWrite(reset,1);
  delay(100);
  Wire.beginTransmission(85);
  Wire.send(3);
  Wire.endTransmission();
  delay(2000);
  digitalWrite(reset,0);
  delay(10);
    digitalWrite(reset,1);
      count ++;
  }

Aprés vu que méme avec les convertisseurs de niveaux logique le fait de lancer un morceaux plante complétement le déroulement du prog (dû au passage du bus I2C vers SPI) j'ai pensé à un truc, et je ne sais pas si c'est faisable, j'attends donc que vous m'éclairiez.

J'ai testé le voltage entre la ligne SDA et SCL sur l'ATtiny85 pendant tout le cycle de lecture d'une piste, j'obtiens donc:
-Au repos : 1V
-Lecture : 1.5V
-Aprés fin lecture : pique à 3.3V
-Repos : 1 V
........

Serait t'il possible de rajouter un Attiny85 qui lui serait là pour faire office de "relais" d'ouverture et de fermeture pour couper la ligne SDA/SCL le temps de la lecture, en gros l'arduino envois la commande à l'ATtiny qui lit la musique, l'autre ATtiny compare la tension entre SDA et SCL et si celle ci dépasse 1V coupe la liaison SDA/SCL entre l'arduino et le lecteur audio, et l'a réouvre une fois que la tension reviens à 1V?

C'est possible ou pas?

Merci de vos réponses, A+
11  International / Français / Re: simulation electronique on: January 14, 2012, 05:05:52 am
Salut, pour VirtualBreadBoard, tu peux DL des versions gratuites qui traine sur le Web, tu pourras te faire une idée seul de l'utilité de ce log Alien smiley-wink
Lien vers 4.3.8

A+
12  International / Français / Re: LED mulicolores on: January 13, 2012, 10:57:16 am
Fragile et cassant le kynar? heu ben je trouve pas, sauf peut étre au niveau des soudures sur plaque Veroboard, mais avec un ti coup de pistoler à colle pour éviter les torsions aux niveaux des soudures et une éventuelle cassure ça le fait ^^.
13  International / Français / Re: LED mulicolores on: January 13, 2012, 08:19:36 am
Re, pour le cable fin qui supporte pas mal de tension tu peux te tourner vers du Kynar AWG32 ou  30, c'est du fils justement à Wrapper, il est super fin, je m'en servais pour faire mes Mod PSP:

Autre Photos

Lien Kynar Farnell

Par contre si tu passe par Farnell, je suis partant pour une CG, si jamais prends contact avec moi...enfin faut voir si d'autre sont intérréssé par une CG de ce type??

A+
14  International / Français / Re: LED mulicolores on: January 13, 2012, 06:41:58 am
Salut, et pour les LED y'a Phenoptix choix sympa de LED de bonne qualité, envois rapide...

A+
15  International / Français / Re: Premier Projet Bombe Factice pour Partie Paintball on: January 13, 2012, 05:16:42 am
Salut Arduimat, et merci pour ton retour sur mon projet ^^
Pour répondre à tes questions:
- La batterie c'est celle ci : ICI
- Le chargeur j'ai pris celui-CI ( plus de 9H pour une charge compléte de la batterie.....)
- Pour l'alimentation j'ai séparé en deux mes circuits, histoire de ne pas trop tirer de jus sur l'arduino.
   - La batterie est connecté directement sur l'arduino, arduino qui lui alimente tout ce qui a des prises analogiques: Keypad/4051/BP
   - La batterie passe aussi en // par un 7805 sans passer par l'arduino pour alimenter : les LCD/Pad NES/LED/IR/Audio SD/DS1307
-Pour ce qui est de l'utilisation d'autant de module sur un arduino, ben à la base j'étais partie sur un Arduino Mega, mais j'ai vite trouvé dommage de laisser vide autant de pin, je suis donc passé sur le UNO en passant par diverses multiplexer/demultiplexer. Et il me reste juste un pin de libre sur le UNO, voila le détail des cables nécessaires pour les diverse modules:
 
- Shift LCD 20 x 4 >> 3 Pin digitaux
- LCD 16 x 2 I2C >> Pin SDA/SCL
- PAD NES >> 3 Pin Digitaux
- Récepteur IR + Télécommande >> 1 Pin Analogique
- Matrice à LED Bicolore de 5x5 (pour avoir 10 LED Bicolore + 5 LED simple)  avec 595 et ULN2803  >> 3 Pin Digitaux
- Keypad non matricielle transformé en Analogique >> 1 Pin Analogique
- DS1307 >> Pin SDA/SCL
- Audio SD player D'ELM Chan >> 1 Pin Digital
- 4051 >> 3 Pin Digitaux + 1 Pin Analogique
- BP >> 1 Pin Analogique

- Pour ce qui est des errures je les ai récup au taf sur des monayeurs, mais avec une recherche "Serrures Contact " ou "barillet à contatc electrique"  tu cevrais trouver ton bonnheur.

Voila en espérant avoir répondu correctement à tes attentes smiley-wink

A+
Pages: [1] 2 3 ... 6