Show Posts
Pages: [1] 2 3
1  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
2  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.
3  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 () {
  
}
4  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
5  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
6  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
7  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
8  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
9  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
10  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?
11  International / Français / Re: quelle source d'alimentation autonome pour Arduino? on: June 10, 2013, 02:35:12 pm
Quote
Ma question donc : quelle est la meilleure source d'alimentation autonome pour un projet Arduino?
Désolé mais il n'y a que toi qui peut répondre.
Pourquoi  il n'y a que toi ?

Parce que il faut connaître ce que tu raccordes dessus car la principale consommation ne provient pas du micro mais de ce qui est raccordé dessus.  
Si ce que tu raccordes dessus consomme 10mA ou 10 A la réponse ne sera pas la même.

Conseil : mesure le courant consommé par ton montage complet en insérant un multimètre positionné en ampèremètre.
Pour la suite les capacités des piles ou des batteries rechargeable sont données en ampère multipliées par des heures.

ok je vais faire ca.
je me branche donc, par exemple, entre la sortie coourant de ma pile et l'entrée courant de mon circuit, en position amp?

MAj:
Sur mon ampèremetre : 65 ma au repos (ouch) et 100 ma lorsque un mouvement est détécté puis envoyé via la radio cc1101.
Sur ma pile 9v/175mah c'est sur que je suis mal engagé...

Code à revoir donc...

edit :
Je mets ma puce radio en pause par defaut entre 2 envois : je descends a 38 ma, belle économie déjà smiley
Me reste a trouver le moyen de mettre l'arduino en pause aussi sachant que l'int0 est pris et que l'int1 à l'air de déranger le cc1101 lorsque je lance un digitalread sur cet int1...
12  International / Français / Re: quelle source d'alimentation autonome pour Arduino? on: June 10, 2013, 09:22:00 am
mon schéma
13  International / Français / Re: quelle source d'alimentation autonome pour Arduino? on: June 10, 2013, 09:21:31 am

comment font, par exemple, les sondes du commerce (oregon, etc) qui tournent facile un an avec 2 piles avec un mcu, un dallas et une puce radio?
dans beaucoup de cas ce genre de sonde exterieures (distantes) travaillent en wake-up
reveil, acquisition,transmission, "dodo"  smiley-cool , la durée de fonctionnement "au taquet" est de l'ordre de la seconde et couramment les sondes font de l'envoi de l'ordre d'une ou 2 fois/minute.


j'ai commencé à creuser la fonction sleep (déja fait sur d'autres projets) mais dans mon cas, l'int 0 est deja pris, et j'ai des doutes sur le int 1.
14  International / Français / Re: quelle source d'alimentation autonome pour Arduino? on: June 10, 2013, 05:32:52 am
Quelle batterie, de quelle capacité ?
Comment est-elle rechargée?

Questions bêtes mais fondamentales  smiley

pile 9v, 175mah, nimh, achetée à super u.
mon idée était de tenir plusieurs mois sur cette pile : mauvaise idée à priori smiley

l'idée étant de placer mon circuit au fond du jardin et donc de ne pas devoir changer la pile tous les jours..
15  International / Français / Re: quelle source d'alimentation autonome pour Arduino? on: June 10, 2013, 05:31:24 am
Quote
Ma question donc : quelle est la meilleure source d'alimentation autonome pour un projet Arduino?
Désolé mais il n'y a que toi qui peut répondre.
Pourquoi  il n'y a que toi ?

Parce que il faut connaître ce que tu raccordes dessus car la principale consommation ne provient pas du micro mais de ce qui est raccordé dessus. 
Si ce que tu raccordes dessus consomme 10mA ou 10 A la réponse ne sera pas la même.

Conseil : mesure le courant consommé par ton montage complet en insérant un multimètre positionné en ampèremètre.
Pour la suite les capacités des piles ou des batteries rechargeable sont données en ampère multipliées par des heures.

ok je vais faire ca.
je me branche donc, par exemple, entre la sortie coourant de ma pile et l'entrée courant de mon circuit, en position amp?
Pages: [1] 2 3