2016-04-09 17 views
2

16 * 2 LCDモジュールにデータを表示しようとしていますが、いくつかのランダムな文字が表示されています。私は私のLCDディスプレイをテストするために使用したいくつかの簡単なコードを持っており、それは完全に動作します。コード:Arduino 16 * 2 LCDに予想される文字の代わりにランダムな文字が表示される

#include<LiquidCrystal.h> 


// initializing pins - RS, E, rest of data pins 
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); 

void setup() { 
    lcd.begin(16, 2); 
} 

void loop() { 
    lcd.print("Testing"); // thats the top row string 
    delay(1800); 

    lcd.setCursor(2, 1); // move to the 2nd row, 1st col 
    lcd.print("Display this!"); 
    delay(1800); 
    lcd.clear(); 

    lcd.setCursor(7, 1); 
    delay(400); 
    lcd.blink(); 
    lcd.setCursor(6, 1); 
    delay(400); 
    lcd.setCursor(5, 1); 
    delay(400); 
    lcd.setCursor(4, 1); 
    delay(400); 
    lcd.setCursor(3, 1); 
    delay(400); 
    lcd.setCursor(2, 1); 
    delay(400); 
    lcd.setCursor(1, 1); 
    delay(400); 
    lcd.setCursor(0, 1); 
    lcd.noBlink(); 
    lcd.print("Silly Isn't It?"); 

    lcd.cursor(); 
    delay(1800); 
    lcd.noCursor(); 

    lcd.clear(); 
} 

は、しかし、私は今、ブレッドボード上でより多くのものを持っている - LCD、マイクロSDリーダー、ポテンショメータとLM35温度センサ と、この私のコード:

#include<LiquidCrystal.h> 
#include <SD.h> 
#include <SPI.h> 

////////// LCD 
//initializing pins - RS, E, rest of data pins 
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); 


const int CS_PIN = 10; 
const int POW_PIN = 8; 
int refreshRate = 2000;  // for reading vals 

////////// LEDs 
int ledPinR = 11; 
int ledPinG = 12; 
int ledPinY = 13; 

////////// LM35 
float temp; 
int tempPin = A0; 

void setup() { 

    ////////// LED 
    pinMode(ledPinR, OUTPUT); 
    pinMode(ledPinG, OUTPUT); 
    pinMode(ledPinY, OUTPUT); 

    ////////// LCD 
    lcd.begin(16, 2); 
    lcd.print("please wait..."); //thats the top row string 
    delay(2000); 
    lcd.clear(); 
    lcd.blink(); 


    ////////// SD 
    Serial.begin(9600); 
    Serial.println("\nNow Initializing SD card..."); 
    pinMode(CS_PIN, OUTPUT); 
    pinMode(POW_PIN, OUTPUT); 
    digitalWrite(POW_PIN, HIGH); 

    if(!SD.begin(CS_PIN)){ 
    Serial.println("\nSomething went wrong. Probably card failure, card format, or something else."); 
    return; 
    } 

    Serial.println("\nCard ready!"); 
    File commandFile = SD.open("tempLevels.txt"); 

    if(commandFile){ 
    Serial.println("\nNow Reading Command File..."); 

    while(commandFile.available()) 
    { 
     refreshRate = commandFile.parseInt(); 
    } 

    Serial.print("\nTapiwa, the refresh rate is: "); 
    Serial.print(refreshRate); 
    Serial.print(" ms"); 

    commandFile.close(); 
    } 

    else{ 
    Serial.println("Oops! Failing to read command file!"); 
    return; 
    } 
} 

void loop() { 

    ////////// LM35 
    temp = analogRead(tempPin); 
    float mV = (temp/1024.0) * 5000; 
    float tempVal = mV/10; 

    Serial.println("\nTemperature is: "); 
    Serial.println(tempVal); 

    File dataFile = SD.open("log.csv", FILE_WRITE);   // dont know about that .csv format 

    if(dataFile) 
    { 
    dataFile.print("\nTemperature is: "); 
    dataFile.print(tempVal); 
    dataFile.println("Deg"); 
    dataFile.close(); 

    Serial.println("\nSaved in DataFile >> Temperature is: "); 
    Serial.print(tempVal); 
    } 

    else 
    { 
    Serial.println("DataFile error! Reading not saved"); 
    Serial.println("Could not open log file! Not on SD card!"); 
    } 

    lcd.print("Temp: "); 
    lcd.setCursor(2, 1); // 2nd row, 1st col 
    lcd.print(tempVal); 
    delay(2000); 

    lcd.clear(); 
    delay(refreshRate); 
} 

を私は取得しています結果はシリアルモニタに表示されますが、LCDには暗号化されたテキストに似たランダムな文字が表示されます。どこで私は間違えましたか? 私はこのサイトや他のサイトの複数の投稿を見ましたが、それほど有用ではありません:

This one made sense but not useful in my case

This one too!

And this one

答えて

1

あなたがSerialのドキュメントを見てみるならば、それは言う:

すべてのArduinoボードは、(また、UARTやUSARTとして知られている)は、少なくとも1つのシリアルポートを持っている:シリアル。デジタルピン0(RX)と1(TX)とUSBを介してコンピュータと通信します。 したがって、これらの機能を使用する場合は、デジタル入力または出力のピン0および1を使用することはできません。

LCDはピン1

+0

を使用して、物事が起こったことを好きではないように、したがって、あなたはあなたの仕組みを再配置する必要があります。どうもありがとう! ////////// LCD //初期化ピン - RS、E、残りのデータピン LiquidCrystal lcd(3、2、4、5、6)ピン1からピン3に変更されました。 、 7); –

+0

あなたは大歓迎です! –

関連する問題