Go Down

Topic: [résolu] library for serial port 2 (map NANO / 328 to control a GSM modem) (Read 834 times) previous topic - next topic

geryko

Hello,
I do not speak English, I use google translate to write. Accept my apologies.

I use a card NANO / 328 and would like to install a second serial port to control a GSM modem.
#include <SoftwareSerial.h> does not. (Compilation error) but see note below
#include <NewSoftSerial.h> does not. (Compilation error)
So I search a library that works
Thank you for helping me.
-----------------------------
Bonjour,
Je ne parle pas l'anglais, j'utilise Google traduction pour écrire. Acceptez mes excuses.

J'utilise une carte NANO/328 et je voudrais installer un 2ème port série pour piloter un modem GSM.
#include <SoftwareSerial.h> ne fonctionne pas. (erreur à la compilation)  mais voir note ci-dessous
#include <NewSoftSerial.h> ne fonctionne pas. (erreur à la compilation)
Je recherche donc une library qui fonctionne.
Merci de m'aider.

-----------------------
An excerpt of my code: /  Un extrait de mon code :

Quote
#include <SoftwareSerial.h>  //for the 2nd harbor // pour le 2 ème port
#define rxPin  6    // signaux (GSM --> NANO)
#define txPin  5    // signaux  (NANO -->GSM)
SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin); //  Initialize mySerial  // initialisation mySerial SoftwareSerial

//void setup() {
Serial.begin(9600);                   // Port série N° 1 port USB ---> moniteur
pinMode(rxPin, INPUT);           // Set pin mode to input for Software serial RX Pin
pinMode(txPin, OUTPUT);       // Set pin mode to output for Software serial TX Pin
mySerial.begin(9600);             //  Port série N°2 ---> modem GSM
// ...
 // initializing ext interruptions. by PCINT1 // initialisation des interruptions ext. par PCINT1
PCMSK1 |= B00011111;  // PCINT 8 à 12 autorisée
PCICR |= B010;        // groupe PCIE1 = 1 (PCINT 8 à 12)
PCIFR |= B010;        // pour effacer le flag PCIF1
// ....
Note the code :  Nota sur le code :
By removing the line 233 // En supprimant la ligne 233  (ISR(PCINT1_vect, ISR_ALIASOF(PCINT0_vect));
- No compilation errors, interruptions PIC PORTC NT1 working properly.
- Serial port works with many random errors. (Conflicts ?)
- When the serial port # 1 (USB) is not connected, the port No. 2 does not?

- pas d'erreur de compilation, les interruptions PCINT1 PortC fonctionnent correctement.
- port série fonctionne aléatoirement avec nombreuses erreurs. (conflits ?)
- lorsque le port série N°1 (USB) n'est pas connecté, le port N°2 ne fonctionne pas ?

thank you in advance

Lorsque vous avez la solution, la donner et marquer le titre du 1er post [Résolu] .     Géryko

geryko

Hello,

Eventually I found the explanations.
1) SoftwareSerial.h library works correctly provided remove the line 233.
Line = 233 // SoftwareSerial ((ISR (PCINT1_vect, ISR_ALIASOF (PCINT0_vect));)

2) This is the GSM module (TC35 Siemens) had levels too low = Rx = 2.65V just random.
By incorporating a diode and a pullup R 33k, the level is now:
low ---> 0.65 V
high ---> 3.3 V

Thank you all.
----------------------------
Bonjour,

Finalement, j'ai trouvé les explications.
1) La librairie SoftwareSerial.h  fonctionne correctement à condition de supprimer la ligne 233.
ligne 233 = // SoftwareSerial ((ISR(PCINT1_vect, ISR_ALIASOF(PCINT0_vect));)

2) C'est le module GSM (TC35 Siemens) qui avait le niveau Rx trop faible = 2.65V seulement = aléatoire.
En incorporant une diode et une R pullup 33k, le niveau est maintenant :
niveau bas   ---> 0,65 V
niveau haut ---> 3.3 V

Merci à tous.
Lorsque vous avez la solution, la donner et marquer le titre du 1er post [Résolu] .     Géryko

geryko

Bonjour,

Voir ce que j'ai réalisé / See what I have done.

http://www.microfer.fr/geryko/dowload_publics.php?mon_fichier=Arduino_transmetteur_SMS_GSM.zip
Lorsque vous avez la solution, la donner et marquer le titre du 1er post [Résolu] .     Géryko

Go Up