библиотека SD card (Windows / Mac Os)

iecoza
Offline
Зарегистрирован: 17.02.2017

Помогите решить проблемы (Arduino UNO):
1. Трёхцветный светодиод подключен к A0, A1, A2
если ошибка иницилизации SD карты то моргает красным иначе зеленым.
так вот когда происходит ошибка (моргание красным) яркость светодиода около 15%
если комментирую SD.begin то все работает
не понятно что делалает библиотека с этими выводами точнее с A2? или я что то не так делаю

2. прошиваю тот же самый код на MAC OS
не иницилизируется SD Card
под windows средой все нормально - работает
(но при отсутствии SD светодиод моргает красным)

помогите победить.

#include <SD.h>

File myFile;
boolean ok;

void setup() {
  Serial.begin(9600);
  ok = false;

  if (!SD.begin(10)) {
    Serial.println("SD not found");
    ok = true;
  }
  Serial.println("SD is ready");
  
  pinMode(A0, OUTPUT);
  pinMode(A1, OUTPUT);
  pinMode(A2, OUTPUT);
}

void loop() {
  if (ok) {
    digitalWrite(A1, 200);
    delay(300);
    digitalWrite(A1, 0);
    delay(300);
  } else {
    digitalWrite(A2, 200);
    delay(300);
    digitalWrite(A2, 0);
    delay(300);
  }
  
  
}
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Сходу не вижу проблемы в коде, но послежу за темой.

Проблема, скорее всего, в железе. Например, как Вы подключили светодиод? Какие резисторы использовали для красной, зелёной и голубой линий?

Есть два замечания по коду. "На скорость они не влияют" и проблема связана не сними, но всё же:

1. Из каких соображений используются столь странные параметры digitalWrite? Зачем там 200?

2. У Вас в случае ошибки SD-карты gthtvtyyfz c bvtytv ok становится true, а при нормальноё инициализации ok==false. Это сбивает с толку при чтении кода.