Go Down

Topic: Notificador de E-Mail, Ajuda na leitura do parsing da string enviada. (Read 1 time) previous topic - next topic

Dicamarques

#10
Feb 13, 2013, 01:45 pm Last Edit: Feb 13, 2013, 01:54 pm by Dicamarques Reason: 1

Esse é o que eu estava atualizando.
Acho que o que mandei para vc estava apenas usando I2C.
Esse agora funciona...
Mas para cada comando, você deve mandar em uma linha com o NEWLINE, ele não entende comandos na mesma linha...


Ha ok, o new line é acrescentar no fim "\n"
E ja agora o que ligo no pino 11 e 12?
Simplesmente nao consigo fazer com que algo aparece no arduino.

bubulindo

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

mmoscz

Ha ok, o new line é acrescentar no fim "\n"
E ja agora o que ligo no pino 11 e 12?
Simplesmente nao consigo fazer com que algo aparece no arduino.
[/quote]
O pino 11 vai para o PINO LED do 5110
Manda uma foto da sua protoboard. as vezes da para descobrir o q esta havendo
Essa é a minha.
4x Duemilanove (clone)
Uno torrado (clone)
Amiga 1200 40MB
Windows XP

Dicamarques

:O a minha montagem é um pouco mais fina :D

Agora uma duvida: tou a fazer uns testes em que mando algo por serie e mostre a mensagem no LCD, so que sempre que mando aparece apenas uma letra de cada vez e nao aparece a mensagem toda.
Quote

//Display temperature and voltage in Nokia 5510 LCD

#define aref_voltage 3.3 // we tie 3.3V to ARef and measure it with a multimeter!
 
//TMP36 Pin Variables
int tempPin = 1;         //the analog pin the TMP36's Vout (sense) pin is connected to
                         //the resolution is 10 mV / degree centigrade with a
                         //500 mV offset to allow for negative temperatures
int tempReading;         // the analog reading from the sensor
char serial;
char myString;
// The pins to use on the arduino to connect the lcd
#define PIN_SCE   7
#define PIN_RESET 6
#define PIN_DC    5
#define PIN_SDIN  4
#define PIN_SCLK  3
 
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>

// pin 7 - Serial clock out (SCLK)
// pin 6 - Serial data out (DIN)
// pin 5 - Data/Command select (D/C)
// pin 4 - LCD chip select (CS)
// pin 3 - LCD reset (RST)
Adafruit_PCD8544 display = Adafruit_PCD8544(3, 4, 5, 7, 6);

#define NUMFLAKES 10
#define XPOS 0
#define YPOS 1
#define DELTAY 2


void setup()   {               
  // If you want to set the aref to something other than 5v
  analogReference(EXTERNAL);
  Serial.begin(9600);
  display.begin();
  // init done
  
  // you can change the contrast around to adapt the display
  // for the best viewing!
  display.setContrast(50);

//  display.display(); // show splashscreen
//  delay(2000);
  display.clearDisplay();   // clears the screen and buffer

  // text display tests
  display.setTextSize(1);
  display.setTextColor(BLACK);
  display.setCursor(10,20);
  display.println("Thermometer");
  display.setCursor(10,30);
  display.println("by Diogo");
  display.display();
  delay(1500);
  display.clearDisplay();
}
void loop()
{
  String stringOne = "Hello String";
 if(Serial.available())
 {
  display.clearDisplay();
  serial = Serial.read();
  stringOne =  String(serial);
  display.setTextSize(1);
  display.setTextColor(BLACK);
  display.setCursor(10,10);
  display.println(stringOne);
  display.display();
  delay(2000);
  display.clearDisplay();
 }

   display.setTextSize(1);
  display.setTextColor(BLACK);
  display.setCursor(10,10);
  display.println("-.-");
  display.display();
 
}


Para usar este codigo preciso usar a livraria da Adafruit. http://learn.adafruit.com/nokia-5110-3310-monochrome-lcd

mmoscz

Bom, o problema é o seguinte, o

Code: [Select]

  serial = Serial.read();
  stringOne =  String(serial);

Aqui você está lendo apenas 1 letra de cada vez, e imprimindo ela.
O Serial.read(), lê um caracter por vez.
De uma olhada lá no meu projeto, e você vai ver que é criado um array de char, para guardar todas as letras da serial até chegar um '\10' que é o new line, ai depois imprime...
Code: [Select]

    while (Serial.available())
      {
      DadoLido = Serial.read(); // Le o char da serial.     
      if (DadoLido != 10) // Verifica se não é um NEWLINE
        {
        T_SerialDataRead = (char *)realloc(SerialDataRead, sizeof(char) * (SerialDataRead_Count + 1));  // Aumenta o tamanho do array
        SerialDataRead = T_SerialDataRead;
        SerialDataRead[SerialDataRead_Count] = DadoLido; // Guarda o caracter lido.
        SerialDataRead_Count++;     
        }
      }
    if (DadoLido == 10) // Se for NEWLINE
      {       
      ProcessaComando();  // entra na função para imprimir no LCD.
      }

4x Duemilanove (clone)
Uno torrado (clone)
Amiga 1200 40MB
Windows XP

Go Up