Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Топ:
Основы обеспечения единства измерений: Обеспечение единства измерений - деятельность метрологических служб, направленная на достижение...
Особенности труда и отдыха в условиях низких температур: К работам при низких температурах на открытом воздухе и в не отапливаемых помещениях допускаются лица не моложе 18 лет, прошедшие...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов...
Интересное:
Финансовый рынок и его значение в управлении денежными потоками на современном этапе: любому предприятию для расширения производства и увеличения прибыли нужны...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Уполаживание и террасирование склонов: Если глубина оврага более 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).
|
|
|
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!