Поиск по сайту

Результаты поиска по тегам 'DS2430'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип публикаций


Категории и разделы

  • Вопрос-Ответ. Для начинающих
    • Песочница (Q&A)
    • Дайте схему!
    • Школьникам и студентам
    • Начинающим
    • Паяльник TV
    • Обсуждение материалов с сайта
  • Радиоэлектроника для профессионалов
    • Световые эффекты и LED
    • Роботы и модели на ДУ-управлении
    • Автоматика
    • Самодельные устройства к компьютеру
    • Программное обеспечение
    • Автомобильная электроника
    • Системы охраны и наблюдения. Личная безопасность
    • Питание
    • Электрика
    • Промышленная электроника
    • Ремонт
    • Металлоискатели
    • Измерительная техника
    • Мастерская радиолюбителя
    • Сотовая связь
    • Спутниковое ТВ
    • КВ и УКВ радиосвязь
    • Жучки
    • Телефония и фрикинг
    • Высокое напряжение
    • Идеи и технологии будущего
    • Справочная радиоэлементов
    • Литература
    • Разное
  • Аудио
    • FAQ, Технологии и компоненты
    • Для начинающих
    • Источники звука
    • Предусилители, темброблоки, фильтры
    • Питание аудио аппаратуры
    • Усилители мощности
    • Акустические системы
    • Авто-аудио
    • Ламповая техника
    • Гитарное оборудование
    • Прочее
  • Микроконтроллеры
    • МК для начинающих
    • AVR
    • PIC
    • STM32
    • Arduino и Raspberry Pi
    • ПЛИС
    • Другие микроконтроллеры и семейства
    • Алгоритмы
    • Программаторы и отладочные модули
    • Периферия и внешние устройства
    • Разное
  • Товары и услуги
    • Коммерческие предложения
    • Продам-Отдам, Услуги
    • Куплю
    • Уголок потребителя
    • Вакансии и разовая работа
    • Наши обзоры и тесты
  • Разное
    • Конкурсы сайта с призами
    • Сайт Паяльник и форум
    • Курилка
    • Технический английский (English)
    • Наши проекты для Android и Web
    • FAQ (Архив)
    • Личные блоги
    • Корзина
    • Вопросы с VK
  • ATX->ЛБП Переделки
  • Юмор в youtube Киловольты юмора
  • Надежность и группы продавцов Радиолюбительская доска объявлений exDIY
  • разные темы Переделки

Блоги

Нет результатов для отображения.

Нет результатов для отображения.

Местоположения

  • Пользователи форума

Группа


ICQ


Skype


Интересы


Город


Сфера радиоэлектроники


Оборудование

Найдено 1 результат

  1. DS2430A и Arduino

    Всем здравствуйте. Захотелось считать,в целях саморазвития, информацию с чипа DS2430A и заодно освоить способ связи по однопроводной шине. Посмотрел даташит, много гуглил, вроде более менее понял.С чипом можно связаться по интерфейсу 1-wire. И я решил попробовать это провернуть с помощью ардуины. Написал скетч. Пока получается только считать сигнал присутствия ведомого на шине,а считать из памяти ничего не получается,выдаются одни единицы.Пробовал менять РОМ команды,начинать со старшего бита,младшего,всё равно ничего не получается .Нужна хэлпа, подскажите пожалуйста, где мог допустить ошибку в скетче. И еще если можно мб какую нибудь литературу. /*Подключить пин Мастера надо через полевой транзистор, чтобы отпускать линию было проще для прерывания будет использоваться пин №2 на плате(0 по обозначению) Подключаемся к DS2430A*/ unsigned long save;//переменная для хранения времени byte pinMas = 5;//пин мастера volatile byte pinRead = 6;// пин для чтения линии volatile boolean infa = 1;//пин для хранения состояния линии byte adr[256] = {};//массив для хранения данных int i; /***********************************************************/ void reader() //для записи состояния линии { infa = digitalRead (pinRead);// считвываем состояние линии } /***********************************************************/ void pulseReset() { delayMicroseconds(480);//заряжаем линию, ждём 500 мкс /*___________________________________________________________________*/ digitalWrite(pinMas, 0); //подаем 0, открываем полевик=опускаем линию на ноль delayMicroseconds(480);//ждём 480 мкр digitalWrite (pinMas, 1);//подаём 1, закрываем полевик,отпускаем линию infa = 1;//чтобы в значение линии не сохранился ноль, когда линию дёргает ведущий delayMicroseconds (15);//ждём переходный процесс 15 мкр /*___________________________________________________________________*/ save = micros(); while (micros() - save < 240) {};//Здесь должно сработать прерывание и сохранение значения переменной Serial.print("Presence = ");//выводим состояние линии, если ведомый опустит линию, то Serial.println(infa); //в infa запишется ноль } void comWr0()//передача нуля { digitalWrite(pinMas, 0); //подаем 0, открываем полевик=>опускаем линию на ноль delayMicroseconds(80);//ждём 80 мкc digitalWrite(pinMas, 1);//подаём 1, закрываем полевик,отпускаем линию delayMicroseconds(20);//ждём переходный процесс 15 мкр } void comWr1()//передача единицы { digitalWrite(pinMas, 0); //подаем 0, открываем полевик=>опускаем линию на ноль на 2 мкс delayMicroseconds(3);//ждём 3 мкc digitalWrite(pinMas, 1);//подаём 1, закрываем полевик,отпускаем линию delayMicroseconds(90);//ждём переходный процесс 90 мкc } int comRead() { digitalWrite(pinMas, 0); //подаем 0, открываем полевик=>опускаем линию на ноль на 2 мкс delayMicroseconds(2);//ждём 2 мкc digitalWrite(pinMas, 1);//подаём 1, закрываем полевик,отпускаем линию delayMicroseconds(15); infa = digitalRead(pinRead);//читаем линию return infa;//возвращаем значение переменной infa delayMicroseconds(48);//ждём переходный процесс 48 мкc } void setup() { Serial.begin(9600); attachInterrupt(0, reader, FALLING); pinMode(pinMas, OUTPUT); pinMode (pinRead, INPUT); pulseReset(); /*******************************/ //comWr1(); comWr1(); comWr0(); comWr0(); comWr1(); comWr1(); comWr0(); comWr0(); comWr0(); comWr0(); comWr1(); comWr1(); comWr0(); comWr0(); comWr1(); comWr1();//SKIP ROM CCh с младшего бита /*******************************/ comWr0(); comWr0(); comWr0(); comWr0(); comWr1(); comWr1(); comWr1(); comWr1(); //comWr0(); comWr1(); comWr0(); comWr1(); comWr0(); comWr1(); comWr0(); comWr1(); //comWr1(); comWr0(); comWr1(); comWr0(); comWr1(); comWr0(); comWr1(); comWr0(); //поcылаем AAh с младшего бита /*******************************/ comWr0(); comWr0(); comWr0(); comWr0(); comWr0(); comWr0(); comWr0(); comWr0(); //посылаем адрес for ( i = 0; i < 256; i++) //записываем значение состояний линии в массив { comRead(); adr[i] = comRead(); /* Serial.print("Bit"); Serial.print(i); Serial.print(" = "); Serial.println(adr[i]);*/ } for (i = 0; i < 256; i++) { Serial.print("Bit"); Serial.print(i); Serial.print(" = "); Serial.println(adr[i]); } } void loop() { }