2017-06-04 20 views
0

を動作するように取得することができません:私は私が間違って何をやっている、シリアルログ何も示されていない見て、見てみたび私は簡単なプログラム持っているSerial.printが

void setup() { 
    Serial.begin(9600); 
} 

void loop() { 
    int x = 0; 
    Serial.print(x++); 
} 

を。私はArduino Leonardoを使用しており、スケッチはコンパイルしてアップロードします。

-----------------私は本当に取得しようとしていますどのようなアップデート1 ---------------

表示するコンソールは次のコードです。しかし、失敗したので、私は短くて簡単なプログラムを作った:

// SparkFun Soil Moisture Sensor and Serial LCD example 1 
// By Sarah Al-Mutlaq 2015 
// Sketch reads sensor and desplays level and whether soil is wet or dry 

// Use the softwareserial library to create a new "soft" serial port 
// for the display. This prevents display corruption when uploading code. 
#include <SoftwareSerial.h> 

// Attach the serial display's RX line to digital pin 2 
SoftwareSerial mySerial(3,2); // pin 2 = TX, pin 3 = RX (unused) 


// Here we are setting up some water thersholds that we will 
// use later. Note that you will need to change these to match 
// your soil type and environment. 

int thresholdUp = 400; 
int thresholdDown = 250; 

// We are setting up the pin A0 on the redboard to be our sensor 
// pin input: 

int sensorPin = A0; 


void setup(){ 
    mySerial.begin(9600); // set up serial port for 9600 baud (speed) 
    delay(500); // wait for display to boot up 
} 

void loop(){ 
    // Here we are declaring a string, which are lines of words, 
    // and we want DisplayWords to be the words displayed on 
    // the LCD screen, which will change based on whether the soil 
    // wet or dry based on our threshold values above. 
    String DisplayWords; 

    // We need to set up a pin to get the value that the soil 
    // moisture sensor is outputting, so sensorValue will get the 
    // analog value from the sensor pin A0 on the redboard that we 
    // set up earlier. 

    int sensorValue; 
    sensorValue = analogRead(sensorPin); 

    // move cursor to beginning of first line on LCD: 
    mySerial.write(254); 
    mySerial.write(128); 

    // clear display: 
    mySerial.write("    "); 
    mySerial.write("    "); 

    // move cursor to beginning of first line of the LCD screen: 
    mySerial.write(254); 
    mySerial.write(128); 

    //Write what we want to desplay on the screen: 
    mySerial.write("Water Level: "); 
    mySerial.print(sensorValue); //Using .print instead of .write for values 

    // Now we are going to check if the water level is below a 
    // out thresholdDown value we set earlier, and if it is have 
    // words "Dry, Water it!" display one column over on the first 
    // row: 

    if (sensorValue <= thresholdDown){ 
    // move cursor to beginning of second line on LCD: 
    mySerial.write(254); 
    mySerial.write(192); 

    DisplayWords = "Dry, Water it!"; 
    mySerial.print(DisplayWords); 

    // If the value is not below our thresholdDown value we want to 
    // check if it is above our thresholdUp value, and if it is 
    // change the display words to "Wet, Leave it!": 



    } else if (sensorValue >= thresholdUp){ 
    // move cursor to beginning of second line on LCD: 
    mySerial.write(254); 
    mySerial.write(192); 

    DisplayWords = "Wet, Leave it!"; 
    mySerial.print(DisplayWords); 

    // Otherwise if it is inbetween the two values we want it to 
    // the display it had, so if our soil was really wet and drying 
    // the words would only change to "Dry, Water it!" when it got to the lower threshold 
    // (thresholdDown), but if it was dry and getting wetter the words 
    // would only change to "Wet, Leave it!" when it got to the upper 
    // threshold (thresholdUp_): 

    } else { 
    // move cursor to beginning of second line on LCD: 
    mySerial.write(254); 
    mySerial.write(192); 

    mySerial.print(DisplayWords); 
    } 

    delay(500); //wait for half a second, so it is easier to read 
} 

答えて

1

私は今、ディスプレイを制御していることがわかります。これらを使用することは、ターミナルエミュレータにバイトを送信するようなものではありません。彼らは制御されなければならない。これらのシリアルディスプレイを制御することは、一般に、ディスプレイコントローラが同じであれば、(常にそうとは限らない)しばしば異なるディスプレイに対していくつかの初期化コマンドを送信することからなる。

使用している表示部品がわかりませんが、いくつかの初期化コマンドがないことを確信しています。通常、500msの遅延がありますが、カーソル位置指定コマンドを送信する前に送信する必要のある他のinitコマンドについては、ドキュメントを確認してください。

通常、最初のバイトコマンドを送信して、ディスプレイをコマンドモードにして、いくつかのコンフィギュレーションコマンドを送信してから、コマンドモードを終了して実際にディスプレイを使用する必要があります。日立の44780ベースのディスプレイの場合は、44780 datasheetのデータシートをチェックしてください。

+0

更新1を参照してください – Drew1208

+0

@ Drew1208は、あなたのLCDコントロールを見て、私の答えを完全に変更しました。 – TomServo

関連する問題