|
如題,樓主做的畢設(shè)是基于單片機(jī)的車廂節(jié)能燈系統(tǒng)的設(shè)計(jì),然后我從t 寶店買了光敏電阻,店家給了我程序。可是我不知道怎么轉(zhuǎn)換為單片機(jī)語言,這個(gè)是Arduino,店鋪給你程序如下
實(shí)現(xiàn)的內(nèi)容是以51單片機(jī)為控制單元設(shè)計(jì)控制系統(tǒng),添加光敏電阻傳感器模塊,當(dāng)列車車廂內(nèi)亮度不足時(shí),照明燈亮起,車廂內(nèi)越暗,燈越亮,實(shí)現(xiàn)自動智能控制。光敏電阻采用模擬量輸出,亮度改變用4個(gè)發(fā)光二極管模擬表示,根據(jù)實(shí)驗(yàn)實(shí)際檢測設(shè)定兩個(gè)閾值,分別實(shí)現(xiàn)控制1個(gè)發(fā)光二極管亮,2個(gè)發(fā)光二極管亮或4個(gè)發(fā)光二極管全亮,以此原理設(shè)計(jì)并制作樣機(jī)。
- int potpin = A0; //指定模擬端口A0
- int val = 0; //聲明臨時(shí)變量
- int g_Light = 0;
- /*printf格式化字符串初始化*/
- int serial_putc( char c, struct __file * )
- {
- Serial.write( c );
- return c;
- }
- void printf_begin(void)
- {
- fdevopen( &serial_putc, 0 );
- }
- void setup()
- {
- Serial.begin(9600);//設(shè)置串口波特率為9600
- printf_begin();
- }
- /* AD: x: 0~1024 Lux: y: 10000~0
- y = -(10000/1024) x + 10000;
- y = -9.76x + 10000; 約等于y = -10x+10000 */
- void loop()
- {
- val = analogRead(potpin); //讀取A0口的電壓值并賦值到val
- g_Light = -10 * val + 10000;
- printf("$AR,GMS%d,%d#\n", val, g_Light);
- delay(1000);
- }
復(fù)制代碼
|
|