Show Posts
Pages: [1] 2 3 4
1  International / Français / Re: problème avec avec un 74HC595 on: June 09, 2014, 06:18:23 am
Pour compléter ce post, ci joint mon schéma revu et corriger avec un ULN2803.

On a donc un 74HC595 qui pilote un ULN2803 qui pilote 8 leds...
Le tout sur une alim externe qui alimente l'arduino et les leds séparément.
j'ai préféré laisser mes circuits intégrés sur la borne 5v (régulée) de mon arduino.

Une vidéo ici : http://labalec.fr/erwan/?p=1310 pour illustrer le tout (8 leds en mode "chenillard").

Prochaine étape : cascader plusieurs 74HC595 .

/Erwan
2  International / Français / Re: problème avec avec un 74HC595 on: June 05, 2014, 02:57:56 pm
Pour ceux que ca intéresse, j'ai résolu mon pb avec le schéma ci joint .
Je n'ai dessiné que 2 leds mais en fait j'en fait tourner 8.

J'ai donc une alim externe pour mes leds avec une série de transistors et j'utilise aussi mon alim externe pour alimenter l'arduino via le vin.

La prochaine évolution est un ULN2803A pour remplacer la série de transistors.

A terme, c'est une "wordclock" que je cherche à réaliser.

/Erwan
3  International / Français / Re: problème avec avec un 74HC595 on: June 01, 2014, 03:30:43 pm
Je viens de mesurer la conso de mes led : 70 ma chacune... soit 210 ma sur mon schéma dans mon 1er post.
Autant dire que j'explose les specs de mon 74HC595  aussi bien sur une borne de sortie qu'au total...

La bonne nouvelle c'est qu'a priori je n'ai pas grillé mon composant puisqu'il se comporte toujours comme attendu.

Merci bcp 68tjs pour tes conseils !

/Erwan

4  International / Français / Re: problème avec avec un 74HC595 on: June 01, 2014, 02:59:14 pm
Ok merci pour cette réponse.
J'avais commencé à pressentir un pb d'intensité.
Je viens de mesurer et je sors du 12ma sur les bornes de sortie de mon 74HC595 ce qui, j'imagine, est trop juste pour alimenter une led...

En googlant, c'est assez trompeur car on trouve tout un tas de schémas ou les led sont alimentées par le 74HC595...
Exemple ici : http://www.arduino.cc/en/Tutorial/ShiftOut .

Ca m'apprendra à ne pas lire la datasheet !

Me reste plus qu'a me trouver des transistors smiley-sad

Merci pour le coup de main !

/Erwan
5  International / Français / problème avec avec un 74HC595 on: June 01, 2014, 07:48:14 am
Bonjour,

Souhaitant me lancer dans un projet de wordclock, je me suis acheté quelques 74HC595 pour fait du "shift register".

J'ai donc commencé par un montage simple (un 74HC595 + 3 led) pour me familiariser avec ce composant.
Cela ma paraissait assez simple et pourant je n'arrive pas à allumer mes led smiley-sad

J'ai testé la tension à la sortie de mon 74HC595 sur q0,q1,q2 et je vois bien un changement d'état donc jusque la tout va bien.
J'ai testé la tension avant/après mes led et là encore j'ai bien une tension (environ 4.5v) donc encore une fois tout semble correct.
Et pourant mes led restent désespérement silencieuses smiley-sad

J'ai bien sure testé mes led et resistances : r.a.s.
j'ai changé mon 74HC595 : r.a.s.

Une idée?

Ci joint mon schéma et mon code.

Toute aide, idées, commentaires... seront les bienvenues smiley

Cordialement,
Erwan

Code:
//the pins we are using
int latchPin = 2;
int clockPin = 3;
int dataPin = 4;
 
void setup() {
  //set all the pins used to talk to the chip
  //as output pins so we can write to them
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
  
  //pinMode(13, OUTPUT);
  //digitalWrite(13, HIGH);
}
 
void loop() {
  for (int i = 0; i < 8; i++) {
    //for each of the numbers 0 to 7...
 
    //take the latchPin low so the LEDs don't
    //change while we are writing data
    digitalWrite(latchPin, LOW);
 
    //shift out the bits
    shiftOut(dataPin, clockPin, MSBFIRST, i);  
 
    //take the latch pin high so the pins reflect
    //the data we have sent
    digitalWrite(latchPin, HIGH);
 
    // pause before next value:
    delay(2000);
  }
}
6  Using Arduino / Displays / Re: nokia 5110 on: March 01, 2014, 11:30:15 am
about wiring it was pretty straigh forward for me on arduino :


I believe you can actually use the 5v pin for the 5110: i read that it has an internal resistor that will take care of it.
The led should be wired indeed on the 3.3v arduino pin (although it will work fine on 5v but will probably get worn out faster).

For the rest, simple SPI 4 wires.

Regards,
Erwan
7  Using Arduino / Displays / Re: nokia 5110 on: February 28, 2014, 11:39:44 am
Code is indeed much simpler.
Thanks for the tip.
Worked right away without any modification.

But still the same issue smiley-sad

lcd.setCursor(0, 0); -> I see only the first line of pixels but miss the whole row.

lcd.setCursor(0, 3); -> works fine but starts at row 3.
8  Using Arduino / Displays / Re: nokia 5110 on: February 28, 2014, 09:08:41 am
Image cropped.

The 5510.

Here is the arduino sketch :

Code:

/* Definition des broches du lcd */
#define PIN_SCE   7
#define PIN_RESET 6
#define PIN_DC    5
#define PIN_SDIN  4
#define PIN_SCLK  3

// Définir ici la hauteur / largeur de l'écran en pixel
#define LCD_X 84
#define LCD_Y 48

// La broche DC permet de dire à l'écran si on envoi une commande ou une donnée
#define LCD_COMMAND LOW
#define LCD_DATA HIGH

#define LCD_C 0

PROGMEM prog_uchar asciiTable[] = {
   0x00, 0x00, 0x00, 0x00, 0x00 // 20  
  ,0x00, 0x00, 0x5f, 0x00, 0x00 // 21 !
  ,0x00, 0x07, 0x00, 0x07, 0x00 // 22 "
  ,0x14, 0x7f, 0x14, 0x7f, 0x14 // 23 #
  ,0x24, 0x2a, 0x7f, 0x2a, 0x12 // 24 $
  ,0x23, 0x13, 0x08, 0x64, 0x62 // 25 %
  ,0x36, 0x49, 0x55, 0x22, 0x50 // 26 &
  ,0x00, 0x05, 0x03, 0x00, 0x00 // 27 '
  ,0x00, 0x1c, 0x22, 0x41, 0x00 // 28 (
  ,0x00, 0x41, 0x22, 0x1c, 0x00 // 29 )
  ,0x14, 0x08, 0x3e, 0x08, 0x14 // 2a *
  ,0x08, 0x08, 0x3e, 0x08, 0x08 // 2b +
  ,0x00, 0x50, 0x30, 0x00, 0x00 // 2c ,
  ,0x08, 0x08, 0x08, 0x08, 0x08 // 2d -
  ,0x00, 0x60, 0x60, 0x00, 0x00 // 2e .
  ,0x20, 0x10, 0x08, 0x04, 0x02 // 2f /
  ,0x3e, 0x51, 0x49, 0x45, 0x3e // 30 0
  ,0x00, 0x42, 0x7f, 0x40, 0x00 // 31 1
  ,0x42, 0x61, 0x51, 0x49, 0x46 // 32 2
  ,0x21, 0x41, 0x45, 0x4b, 0x31 // 33 3
  ,0x18, 0x14, 0x12, 0x7f, 0x10 // 34 4
  ,0x27, 0x45, 0x45, 0x45, 0x39 // 35 5
  ,0x3c, 0x4a, 0x49, 0x49, 0x30 // 36 6
  ,0x01, 0x71, 0x09, 0x05, 0x03 // 37 7
  ,0x36, 0x49, 0x49, 0x49, 0x36 // 38 8
  ,0x06, 0x49, 0x49, 0x29, 0x1e // 39 9
  ,0x00, 0x36, 0x36, 0x00, 0x00 // 3a :
  ,0x00, 0x56, 0x36, 0x00, 0x00 // 3b ;
  ,0x08, 0x14, 0x22, 0x41, 0x00 // 3c <
  ,0x14, 0x14, 0x14, 0x14, 0x14 // 3d =
  ,0x00, 0x41, 0x22, 0x14, 0x08 // 3e >
  ,0x02, 0x01, 0x51, 0x09, 0x06 // 3f ?
  ,0x32, 0x49, 0x79, 0x41, 0x3e // 40 @
  ,0x7e, 0x11, 0x11, 0x11, 0x7e // 41 A
  ,0x7f, 0x49, 0x49, 0x49, 0x36 // 42 B
  ,0x3e, 0x41, 0x41, 0x41, 0x22 // 43 C
  ,0x7f, 0x41, 0x41, 0x22, 0x1c // 44 D
  ,0x7f, 0x49, 0x49, 0x49, 0x41 // 45 E
  ,0x7f, 0x09, 0x09, 0x09, 0x01 // 46 F
  ,0x3e, 0x41, 0x49, 0x49, 0x7a // 47 G
  ,0x7f, 0x08, 0x08, 0x08, 0x7f // 48 H
  ,0x00, 0x41, 0x7f, 0x41, 0x00 // 49 I
  ,0x20, 0x40, 0x41, 0x3f, 0x01 // 4a J
  ,0x7f, 0x08, 0x14, 0x22, 0x41 // 4b K
  ,0x7f, 0x40, 0x40, 0x40, 0x40 // 4c L
  ,0x7f, 0x02, 0x0c, 0x02, 0x7f // 4d M
  ,0x7f, 0x04, 0x08, 0x10, 0x7f // 4e N
  ,0x3e, 0x41, 0x41, 0x41, 0x3e // 4f O
  ,0x7f, 0x09, 0x09, 0x09, 0x06 // 50 P
  ,0x3e, 0x41, 0x51, 0x21, 0x5e // 51 Q
  ,0x7f, 0x09, 0x19, 0x29, 0x46 // 52 R
  ,0x46, 0x49, 0x49, 0x49, 0x31 // 53 S
  ,0x01, 0x01, 0x7f, 0x01, 0x01 // 54 T
  ,0x3f, 0x40, 0x40, 0x40, 0x3f // 55 U
  ,0x1f, 0x20, 0x40, 0x20, 0x1f // 56 V
  ,0x3f, 0x40, 0x38, 0x40, 0x3f // 57 W
  ,0x63, 0x14, 0x08, 0x14, 0x63 // 58 X
  ,0x07, 0x08, 0x70, 0x08, 0x07 // 59 Y
  ,0x61, 0x51, 0x49, 0x45, 0x43 // 5a Z
  ,0x00, 0x7f, 0x41, 0x41, 0x00 // 5b [
  ,0x02, 0x04, 0x08, 0x10, 0x20 // 5c backslash
  ,0x00, 0x41, 0x41, 0x7f, 0x00 // 5d ]
  ,0x04, 0x02, 0x01, 0x02, 0x04 // 5e ^
  ,0x40, 0x40, 0x40, 0x40, 0x40 // 5f _
  ,0x00, 0x01, 0x02, 0x04, 0x00 // 60 `
  ,0x20, 0x54, 0x54, 0x54, 0x78 // 61 a
  ,0x7f, 0x48, 0x44, 0x44, 0x38 // 62 b
  ,0x38, 0x44, 0x44, 0x44, 0x20 // 63 c
  ,0x38, 0x44, 0x44, 0x48, 0x7f // 64 d
  ,0x38, 0x54, 0x54, 0x54, 0x18 // 65 e
  ,0x08, 0x7e, 0x09, 0x01, 0x02 // 66 f
  ,0x0c, 0x52, 0x52, 0x52, 0x3e // 67 g
  ,0x7f, 0x08, 0x04, 0x04, 0x78 // 68 h
  ,0x00, 0x44, 0x7d, 0x40, 0x00 // 69 i
  ,0x20, 0x40, 0x44, 0x3d, 0x00 // 6a j
  ,0x7f, 0x10, 0x28, 0x44, 0x00 // 6b k
  ,0x00, 0x41, 0x7f, 0x40, 0x00 // 6c l
  ,0x7c, 0x04, 0x18, 0x04, 0x78 // 6d m
  ,0x7c, 0x08, 0x04, 0x04, 0x78 // 6e n
  ,0x38, 0x44, 0x44, 0x44, 0x38 // 6f o
  ,0x7c, 0x14, 0x14, 0x14, 0x08 // 70 p
  ,0x08, 0x14, 0x14, 0x18, 0x7c // 71 q
  ,0x7c, 0x08, 0x04, 0x04, 0x08 // 72 r
  ,0x48, 0x54, 0x54, 0x54, 0x20 // 73 s
  ,0x04, 0x3f, 0x44, 0x40, 0x20 // 74 t
  ,0x3c, 0x40, 0x40, 0x20, 0x7c // 75 u
  ,0x1c, 0x20, 0x40, 0x20, 0x1c // 76 v
  ,0x3c, 0x40, 0x30, 0x40, 0x3c // 77 w
  ,0x44, 0x28, 0x10, 0x28, 0x44 // 78 x
  ,0x0c, 0x50, 0x50, 0x50, 0x3c // 79 y
  ,0x44, 0x64, 0x54, 0x4c, 0x44 // 7a z
  ,0x00, 0x08, 0x36, 0x41, 0x00 // 7b {
  ,0x00, 0x00, 0x7f, 0x00, 0x00 // 7c |
  ,0x00, 0x41, 0x36, 0x08, 0x00 // 7d }
  ,0x10, 0x08, 0x08, 0x10, 0x08 // 7e ~
  ,0x78, 0x46, 0x41, 0x46, 0x78 // 7f DEL
};

/* Envoi une commande ou un octet de donnée à l'écran */
void lcd_write(byte mode, byte data) {
  digitalWrite(PIN_DC, mode); // Place DC suivant le mode voulu (COMMAND ou DATA)
  digitalWrite(PIN_SCE, LOW);
  shiftOut(PIN_SDIN, PIN_SCLK, MSBFIRST, data); // Envoi la commande / donnée
  digitalWrite(PIN_SCE, HIGH);
}

/* Initialise l'écran en envoyant la séquence "magique" d'initialisation au PCD8544 */
void lcd_init(void) {
  // Place les broches de contrôle en sorties
  pinMode(PIN_SCE, OUTPUT);
  pinMode(PIN_RESET, OUTPUT);
  pinMode(PIN_DC, OUTPUT);
  pinMode(PIN_SDIN, OUTPUT);
  pinMode(PIN_SCLK, OUTPUT);
 
  // Reset l'écran pour être sur de son état intial
  digitalWrite(PIN_RESET, LOW);
  digitalWrite(PIN_RESET, HIGH);
 
  // Séquence magique
  lcd_write(LCD_COMMAND, 0x21); // Extended Commands
  lcd_write(LCD_COMMAND, 0xBf); // LCD VOP (contrast) - 0xB1 @ 3v3 ou 0xBF @ 5v
  lcd_write(LCD_COMMAND, 0x04); // Temp coefficent
  lcd_write(LCD_COMMAND, 0x14); // LCD bias mode = 1:48
  lcd_write(LCD_COMMAND, 0x0c); // Display control = normal mode (0x0D pour mode "négatif")
  lcd_write(LCD_C, 0x20);
  lcd_write(LCD_C, 0x0c);
}

/* Affiche sur l'écran un caractére passé en argument, avec un colonne vide de "pagination" pour plus de lisibilité */
void lcd_putChar(char chr) {
  lcd_write(LCD_DATA, 0x00); // Colonne vide de pagination
  unsigned int val = (chr - 0x20) * 5; // 0x20 -> 1er caractéres de notre table ascii
  lcd_write(LCD_DATA, pgm_read_byte_near(asciiTable + val));
  lcd_write(LCD_DATA, pgm_read_byte_near(asciiTable + val + 1));
  lcd_write(LCD_DATA, pgm_read_byte_near(asciiTable + val + 2));
  lcd_write(LCD_DATA, pgm_read_byte_near(asciiTable + val + 3));
  lcd_write(LCD_DATA, pgm_read_byte_near(asciiTable + val + 4));
  lcd_write(LCD_DATA, 0x00); // Colonne vide de pagination
}

/* Affiche sur l'écran une chaine de caratéres stocké en RAM */
void lcd_string_ram(char *str) {
  while(*str)
    lcd_putChar(*str++);
}

/* Affiche sur l'écran une chaine de caratéres stocké en PROGMEM */
void lcd_string_flash(prog_char *str) {
  char c = pgm_read_byte_near(str);
  while(c) {
    lcd_putChar(c);
    c = pgm_read_byte_near(++str);
  }
}

/* Déplace le curseur aux coordonnées xy donnée en arguments */
void lcd_goto(byte x, byte y) {
  lcd_write(LCD_COMMAND, 0x80 | x);  // Colonne
  lcd_write(LCD_COMMAND, 0x40 | y);  // Ligne
}

/* Efface l'écran */
void lcd_clear() {
  for (int i = 0 ; i < (LCD_X * LCD_Y / 8) ; i++)
    lcd_write(LCD_DATA, 0x00);
  lcd_goto(0, 0); // Place le curseur à (0, 0)
}


void setup () {
  lcd_init(); // Initialisation de l'écran

lcd_clear(); // Efface l'écran
lcd_goto(0,3);
lcd_string_ram("Hello World!");
 
  //lcd_string_flash(PSTR("Hello World!"));
  
 
}

void loop () {
  
}
9  Using Arduino / Displays / nokia 5110 on: February 27, 2014, 01:10:26 pm
Bonjour,


I have an issue with my setup : nokia 5510 + arduino uno r3.

Here below the wiring :

nokia->arduino
led->3.3v
vcc->5v
gnd->gnd
sce->d7
rst->d6
dc->d5
mosi->d4
sclk->d3

My issue : only the bottom part of the screen seems to work (line 3,4,5).

Here attached a pic illustrating the issue.



Any help welcome smiley

Thanks,
Erwan
10  International / Français / [résolu] pb avec émetteur infra rouge on: August 28, 2013, 02:08:43 pm
bon j'ai trouvé smiley
en fait il suffit de brancher le broche signal sur le pin 3 et le ground sur... le ground et la lib ir remote marche alors nickel smiley

Erwan
11  International / Français / pb avec émetteur infra rouge on: August 28, 2013, 01:57:04 pm
Bonjour,

Je cherche a brancher un émetteur infrarouge : http://dx.com/p/38khz-ir-infrared-transmitter-module-for-arduino-135040.
Et à utiliser la librairie irremote.
Je suis un peu perdu avec le branchement : le composant comporte 3 branches alors qu'il s'agit à priori d'une simple led 2 broches.
J'ai suivi ce tuto mais sans succès :http://www.dfrobot.com/wiki/index.php/DIGITAL_IR_Transmitter_Module_(SKU:DFR0095) .

A noter que je n'ai aucun pb avec mon récepteur http://dx.com/p/tsop1838-ir-infrared-37-9khz-receiver-18m-range-2-7-5-5v-135045 et la librair irremote.

Mon projet est le suivant : renvoyer un signal (ou une série de signaux) lorsque je détecte un signal particulier.

Toute aide sera la bienvenue smiley

Cordialement,
Erwan
12  International / Français / Re: quelle source d'alimentation autonome pour Arduino? on: June 13, 2013, 03:39:21 pm
Merci pour vos conseils.
J'ai commandé un pro mini 5v.
Exit donc le ftdi.

Je vais opter pour un voltage plus bas (autour de 6v) mais un amperage plus élevé (autour de 2300 mah).

Le tout avec le code qui va bien pour mettre en pause le plus possible d'éléments.

Objectif 1 ma max smiley

Je tiendrais ce thread à jour avec le reste de mon aventure sur la chasse au ma.

/Erwan
13  International / Français / Re: quelle source d'alimentation autonome pour Arduino? on: June 13, 2013, 03:35:17 pm
J'ai commandé un pro mini 5v.
Exit donc le ftdi.

Je vais opter pour un voltage plus bas (autour de 6v) mais un amperage plus élevé (autour de 2300 mah).

Le tout avec le code qui va bien pour mettre en pause le plus possible d'éléments.

Objectif 1 ma max smiley

/Erwan
14  International / Français / Re: quelle source d'alimentation autonome pour Arduino? on: June 11, 2013, 02:31:56 pm
parti de 65 ma avec mon montage par défaut.
descendu a 40 ma avec le cc1101 en pause.
descendu a 25 ma avec le cc1101 en pause, et la boucle ci dessous :

void wakeUp()
{
}

void loop() {
 PCintPort::attachInterrupt(4, wakeUp,FALLING);
 LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF);
 PCintPort::detachInterrupt(4);
//mon code ici
 delay(10);
}

Même avec une source à 2000 ma (des piles LR6 par ex), je tiens 2000 / 25 = 80 h? smiley-sad

Ces 25 ma restant alors que tout est en pause seraient consommés par le chip ftdi usb et/ou par la transformation du courant sur la broche VIN ?
Existe t il un moyen de couper le chip ftdi usb sans danger, c.a.d avec la possibilité de le réactiver sur un reset?

/Erwan
15  International / Français / Re: quelle source d'alimentation autonome pour Arduino? on: June 10, 2013, 03:54:23 pm
Bon déjà au vu du schéma tu n'es pas bien parti.
Sur les cartes avec une interface USB c'est le circuit d'interface qui fait la moitié de la consommation de la carte. Donc si tu veux consommer peu, il faut partir sur des arduino mini ou autres choses du même genre.


je vais refaire mon schema : je travaille en fait sur arduino nano v3.
moins de 10e la bete, fonctionne nickel.

j'ai juste pas trouvé l'item qui va bien dans frintz smiley

mais je suis ton raisonnement : le chip ftdi usb consomme même si pas en usage?
Pages: [1] 2 3 4