串口控制的代碼,有串口控制16/32個595級聯,串口控制Arduino UNO 18個引腳開關,串口控制紅外發送,串口控制315M/433M發送等。
- /*
- 串口控制開關
- By Ansifa
- 2013/6/15
-
- 說明!必須看完!
- Arduino UNO總共18個腳全部用完
- 發一串字符串即可單獨控制所有引腳開關。
- H高電平,L低電平,-是保持原來電平狀態。
- 發送的時候,記得選擇串口監視器里面的行尾增加:(換行和回車)
-
- 測試:
- HHHHHHHHHHHHHHHHHH
- LLLLLLLLLLLLLLLLLL
- 111111111111111111
- 1-1-1011111111110
- 000000000000000000
- 10101010101010101
- 10101010101010101
- */
-
-
- int i, Pins[18] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, A0, A1, A2, A3, A4, A5};
- String inputString = "";
- boolean stringComplete = false;
- void setup()
- {
- Serial.begin(57600);
- inputString.reserve(50);
- for (i = 0; i < 18; i++) pinMode(Pins[i], OUTPUT);
- }
- void loop()
- {
- if(stringComplete == true)
- {
- for (i = 0; i < 18; i++)
- {
- if(inputString[i] == 'H' || inputString[i] == 'h' || inputString[i] == '1')
- {
- digitalWrite(Pins[i], HIGH);
- }
- if(inputString[i] == 'L' || inputString[i] == 'l' || inputString[i] == '0')
- {
- digitalWrite(Pins[i], LOW);
- }
- }
- inputString = "";
- stringComplete = false;
- }
- }
-
- void serialEvent()
- {
- while (Serial.available())
- {
- char inChar = (char)Serial.read();
- inputString += inChar;
- if (inChar == '\n' || inChar == '\r')
- {
- stringComplete = true;
- }
- }
- }
復制代碼
|