[求助]請求幫忙呼叫的方式
想請問各位先進, 小弟學習不深, 怎麼樣都是不出來, 想請問我想在OLED 屏上顯示圖型, 但是要根據前面的判斷式去執行
所以設定 a 在 void draw() 裡面
因判斷式結果把 資料送到 a 去執行
但是我試過恨很多種方式, 無法用這種方式把命令call 進去
想問問有甚麼方式呢? ( 小弟翻閱很多資料, 還是無法弄懂)
謝謝
int pin1 = 9; //Pin9
int pin2 = 10; //Pin10
int photocellPin1 = 3;
int val1 = 0;
char a;
U8G2_SSD1306_128X64_NONAME_2_SW_I2C u8g2 (U8G2_R0, A5, A4);
void setup(void) {
u8g2.begin();
pinMode(pin1, OUTPUT);
pinMode(pin2, OUTPUT);
}
void loop() {
val1 = digitalRead(photocellPin1);
if(val1==HIGH){
digitalWrite(pin1, HIGH);
digitalWrite(pin2, LOW);
a="u8g2.drawRFrame(40,17,30,22,7)";
}
else{
digitalWrite(pin1, LOW);
digitalWrite(pin2, HIGH);
a="u8g2.drawRBox(80,25,20,25,5)";
}
u8g2.firstPage();
do {
draw();
} while( u8g2.nextPage() );
}
void draw(){
u8g2.setFont(u8g2_font_unifont_t_greek);
u8g2.setCursor(0,16);
u8g2.print("HC-S Sensor PS");
a;
}
不能这么玩的,建议重新学习C语言 你的要求主要包括兩項:
1) 在OLED 屏上顯示圖型
2) 根據前面的判斷式去執行不同的圖形
第一項你是否已能掌握? 本帖最后由 eddiewwm 于 2018-10-12 18:08 编辑
若你已掌握了第一項,恭喜你!跟著就是第二項了。
按你的程序,你打算顯示的「不同圖形」,就是
u8g2.drawRFrame(40,17,30,22,7)和u8g2.drawRBox(80,25,20,25,5) 的實現結果。
在你的程序裡,你使用的 a="u8g2.drawRFrame(40,17,30,22,7)" 和 a; 的兩句,在 Arduino 雖是能接受,但編譯器會做出與你想像不同的結果,這點你要小心,因自已也沒搞清楚的語句,隨意放在程序裡,出問題是肯定的。簡單地用回原句,基本就可以達到你顯示「不同的圖形」的要求了。
剩下的「根據前面的判斷式去執行...」應如何做呢?一般做法是建立一個旗標,並以此作顯示的判斷,以下是給你參考的,努力!
int pin1 = 9; //Pin9
int pin2 = 10; //Pin10
int photocellPin1 = 3;
int val1 = 0;
bool a; //旗標
void setup() {
// put your setup code here, to run once:
u8g2.begin();
pinMode(pin1, OUTPUT);
pinMode(pin2, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
val1 = digitalRead(photocellPin1);
if (val1 == HIGH) {
digitalWrite(pin1, HIGH);
digitalWrite(pin2, LOW);
a = true; //設定旗標
}
else {
digitalWrite(pin1, LOW);
digitalWrite(pin2, HIGH);
a = false; //設定旗標
}
u8g2.firstPage();
do {
draw();
} while ( u8g2.nextPage() );
}
void draw() {
u8g2.setFont(u8g2_font_unifont_t_greek);
u8g2.setCursor(0, 16);
u8g2.print("HC-S Sensor PS");
// 使用旗標
if (a) {
u8g2.drawRFrame(40, 17, 30, 22, 7);
}
else {
u8g2.drawRBox(80, 25, 20, 25, 5);
}
} eddiewwm 发表于 2018-10-12 17:01
你的要求主要包括兩項:
1) 在OLED 屏上顯示圖型
2) 根據前面的判斷式去執行不同的圖形
大大你好
第一項 在OLED 上面顯示圖型 , 這個部分是可以的
只是加上判斷式後去執行所要顯示的圖型時 ,就出不來
這是我目前碰到的問題
所以才來這邊尋求大大們的幫忙
謝謝
eddiewwm 发表于 2018-10-12 18:04
若你已掌握了第一項,恭喜你!跟著就是第二項了。
按你的程序,你打算顯示的「不同圖形」,就是
感謝大大 你明白我的需求
我測試過了,這就是我所要的
這也讓我學習到另外不同的想法
感謝大大
页:
[1]