Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Топ:
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного...
Методика измерений сопротивления растеканию тока анодного заземления: Анодный заземлитель (анод) – проводник, погруженный в электролитическую среду (грунт, раствор электролита) и подключенный к положительному...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Интересное:
Принципы управления денежными потоками: одним из методов контроля за состоянием денежной наличности является...
Уполаживание и террасирование склонов: Если глубина оврага более 5 м необходимо устройство берм. Варианты использования оврагов для градостроительных целей...
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
Микросхемы полезны тем, что позволяют решать определенную задачу, не собирая каждый раз стандартную схему. Выходной сдвиговый регистр дает нам возможность «сэкономить» цифровые выходы, использовав всего 3 вместо 8.
Как найти ножку микросхемы, на которую отправляются данные?
Для того, чтобы понять, откуда считать ножки микросхемы, на них с одной стороны есть полукруглая выемка. Если мы расположим нашу 74HC595 выемкой влево, то в нижнем ряду будут ножки 1—8, а в верхнем 16—9.
Что нужно сделать до и после отправки собственно данных на 74HC595?
Для того, чтобы передать порцию данных, которые будут отправлены через сдвиговый регистр далее, нам нужно подать LOW на latch pin (вход STcp микросхемы), затем передать данные, а затем отправить HIGH на latch pin, после чего на соответствующих выходах 74HC595 появится переданная комбинация высоких и низких уровней сигнала.
Сколько данных можно передать с помощью shiftOut() и как управлять порядком их передачи?
Порядок записи битов: LSBFIRST (least significant bit first) — начиная с младшего, или MSBFIRST(most significant bit first) — начиная со старшего, байт данных, который нужно передать. Функция работает с порциями данных в один байт, так что если вам нужно передать больше, придется вызывать ее несколько раз.
Задания для самостоятельного решения
Заставьте shiftOut() отправлять биты, начиная со старшего, и измените код так, чтобы счетчик по-прежнему показывал арабские цифры.
Листинг:
1. #define DATA_PIN 13
2. #define LATCH_PIN 12
3. #define CLOCK_PIN 11
4. #define BUTTON_PIN 10
5. int clicks = 0;
6. boolean buttonWasUp = true;
7. byte segments[10] = {
8. 0b10111110, 0b00100100, 0b01011110, 0b01101110, 0b11100100,
9. 0b11101010, 0b11111010, 0b00100110, 0b11111110, 0b11101110
10. };
11. void setup()
12. {
13. pinMode(DATA_PIN, OUTPUT);
14. pinMode(CLOCK_PIN, OUTPUT);
15. pinMode(LATCH_PIN, OUTPUT);
16. pinMode(BUTTON_PIN, INPUT_PULLUP);
17. pinMode(8, OUTPUT);
18. }
19. void loop()
20. {
21. digitalWrite (8, HIGH);
22. if (buttonWasUp &&!digitalRead(BUTTON_PIN)) {
23. delay(10);
24. if (!digitalRead(BUTTON_PIN))
25. clicks = (clicks + 1) % 10;
26. }
27. buttonWasUp = digitalRead(BUTTON_PIN);
28. digitalWrite(LATCH_PIN, LOW);
29. shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, segments[clicks]);
30. digitalWrite(LATCH_PIN, HIGH);
31. }
Эксперимент 15. Комнатный термометр
В этом эксперименте мы измеряем температуру окружающей устройство среды и с помощью шкалы показываем, на сколько она превышает заданный порог.
Принципиальная схема


Код
1. #include <math.h>
2. #define FIRST_LED_PIN 2
3. #define LED_COUNT 10
4. #define TERMIST_B 4300
5. #define VIN 5.0
6. void setup()
7. {
8. pinMode(13, OUTPUT);
9. for (int i = 0; i < LED_COUNT; ++i)
10. pinMode(i + FIRST_LED_PIN, OUTPUT);
11. }
12. void loop()
13. {
14. digitalWrite(13, HIGH);
15. float voltage = analogRead(A0) * VIN / 1023.0;
16. float r1 = voltage / (VIN - voltage);
17. float temperature = 1./(1./(TERMIST_B)*log(r1)+1./(25. + 273.)) - 273;
18. for (int i = 0; i < LED_COUNT; ++i) {
19. boolean enableSegment = (temperature >= 21+i);
20. digitalWrite(i + FIRST_LED_PIN, enableSegment);
21. }
22. }
Вопросы для проверки себя
Как нужно подключить термистор, чтобы получать на Arduino данные о температуре?
Термистор мы включаем в схему делителя напряжения.
Каким образом можно воспользоваться ранее разработанными функциями, не переписывая их в программный код?
Огромное количество готового кода уже написано другими людьми и хранится в виде отдельных файлов, которые называются библиотеками. Для использования кода из библиотеки, её нужно подключить (англ. include).
|
|
|
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!