Arduino - функция с одним параметром, возвращающим логическое значение для обработки входных контактов (по очереди) - PullRequest
0 голосов
/ 11 февраля 2020

Ниже вы можете найти одну версию моей функции test() (я пробовал несколько), но, увы, безуспешно. Индикатор выхода остается включенным или выключенным, но я ожидал, что он будет гореть sh.

Очевидно, я чего-то не понял, возможно, работает static. Я пробовал булево и целочисленное определения для ledPinState, также пробовал вывод на контакт 13 и цифровой вывод 48 (LED + 1k Res). Блок, который я закомментировал, работает просто найти и, по сути, производит вывод, который я ожидаю, используя мою функцию. Я был бы признателен за любую помощь с ошибкой моих путей!

Моя задача - создать функцию, которую я могу вызвать для работы с шестью входными контактами. Toggle() только для проверки принципа.

const int ledPin =  48;  // tried 13

void setup() {
  pinMode(ledPin, OUTPUT);
}

/*  THIS works
void loop() {
  digitalWrite(13, HIGH); // sets the digital pin 13 on
  delay(1000);            // waits for a second
  digitalWrite(13, LOW);  // sets the digital pin 13 off
  delay(1000);            // waits for a second
}
*/

void loop() {
  digitalWrite(ledPin, toggle()); 
  delay(1000);  // slow it down
  digitalWrite(ledPin, toggle()); 
  delay(1000);  
}  

// Test function
bool toggle(){
  static bool ledPinState;
  if (ledPinState = HIGH){
    ledPinState = LOW;
  }else{   // = LOW
    ledPinState = HIGH;
  }
  return ledPinState;  
}


/*  OR  above
..
return false;
..
return true;
*/
...