Для чего нужны микросхемы? Для чего нужен выходной сдвиговый регистр? — КиберПедия 

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Для чего нужны микросхемы? Для чего нужен выходной сдвиговый регистр?

2018-01-30 2759
Для чего нужны микросхемы? Для чего нужен выходной сдвиговый регистр? 4.75 из 5.00 4 оценки
Заказать работу

Микросхемы полезны тем, что позволяют решать определенную задачу, не собирая каждый раз стандартную схему. Выходной сдвиговый регистр дает нам возможность «сэкономить» цифровые выходы, использовав всего 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).


Поделиться с друзьями:

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.007 с.