Пытаясь повторить первый эксперимент из йодо IoT на wifi slot, столкнулся с проблемой работы датчика в итоге выводил не значение, а Nan. Возможно что-то с библиотекой термометра. Скрин ниже. После попробовал подключить потенциометр через его библиотеку и выводить данные в консоль. Получил ошибку ERROR: only output and input are valid for D16 и одно и то же значение на любое положение ручки потенциометра. Скрин ниже. Наверное под wifi slot все библиотеки надо заново писать. Помогите, пожалуйста!
Я прошил в WiFi Slot Micropython, пока с аналоговыми датчиками получилось работать только подключая их к пину A0 (хинт: перемычка rx с обратной стороны платы должна быть перерезана, иначе датчик на A0 будет мешать вводу-выводу через последовательный порт). Судя по скудному описанию здесь http://wiki.amperka.ru/wifi-slot#аналоговый_мультиплексор и схеме, Спойлер А именно, этот кусок: выбирать текущий аналоговый пин можно посылая последовательность 1 и 0 на D15 (пин подключен на вход счетчика, переключающегося по нисходящему фронту). Но выбрать другой пин в качестве аналогового пока не получилось (даже когда я просек, что D15 нужно переключить в OUT режим). Возможно я слишком быстро или слишком медленно переключал 1 и 0. Как применительно к espruino это все будет работать - нужно пробовать.
Привет парни. Изините. Мой косяк. Дело в том что на wifiSlot стоит мультиплексор АЦП. Под ардуино я борду написал, а вот для эспруино ещё ничего не сделано. Если поможете с этим, буду признателен. Вот код для arduino: Код (C++): extern "C" int analogRead(uint8_t pin) { static uint8_t currentAin = 0; delay(0); if (pin >= ANALOG_INPUT_HARDWARE) { return 0; } uint8_t ain = analog_pin_to_mux_channel[pin]; if (ain == (uint8_t)NOT_A_PIN) { return 0; } if (currentAin > ain) { for (int i = 0; i < (8 - currentAin); ++i) { digitalWrite(ANALOG_INPUT_SELECTOR_PIN, HIGH); digitalWrite(ANALOG_INPUT_SELECTOR_PIN, LOW); digitalWrite(ANALOG_INPUT_SELECTOR_PIN, HIGH); digitalWrite(ANALOG_INPUT_SELECTOR_PIN, LOW); } currentAin = 0; } for (int i = currentAin; i < ain; ++i) { digitalWrite(ANALOG_INPUT_SELECTOR_PIN, HIGH); digitalWrite(ANALOG_INPUT_SELECTOR_PIN, LOW); digitalWrite(ANALOG_INPUT_SELECTOR_PIN, HIGH); digitalWrite(ANALOG_INPUT_SELECTOR_PIN, LOW); } currentAin = ain; return __analogRead(ANALOG_INPUT_HARDWARE); } void initVariant() { // we need to reset analog mux. When ANALOG_INPUT_SELECTOR_PIN is high // on ~0.4 ms, mux channel is becoming 0. // Mux channel is swithing on back \_ front. But there is no switching // - rc reset is still high when ANALOG_INPUT_SELECTOR_PIN became low uint16_t resetDelay = 777; pinMode(ANALOG_INPUT_SELECTOR_PIN, OUTPUT); digitalWrite(ANALOG_INPUT_SELECTOR_PIN, HIGH); delayMicroseconds(resetDelay); digitalWrite(ANALOG_INPUT_SELECTOR_PIN, LOW); delayMicroseconds(resetDelay); } При старте мы прижимаем ANALOG_INPUT_SELECTOR_PIN на 777 микросекунд, потому что тогда счётчик каналов АЦП сбросится, и первым каналом станет A0. Больше кода тут: https://github.com/esp8266/Arduino/tree/master/variants/wifi_slot Хотите помочь?
Спасибо! Не посмотрите ещё у меня nfc сканер не работает с WiFi slot - спасибо! http://forum.amperka.ru/threads/Ошибка-wifi-slot-с-nfc-rfid-сканером.16501/