<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://wikihandbk.com/ruwiki/index.php?action=history&amp;feed=atom&amp;title=Arduino%3A%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%2FShftIn23</id>
	<title>Arduino:Примеры/ShftIn23 - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://wikihandbk.com/ruwiki/index.php?action=history&amp;feed=atom&amp;title=Arduino%3A%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%2FShftIn23"/>
	<link rel="alternate" type="text/html" href="http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/ShftIn23&amp;action=history"/>
	<updated>2026-04-11T14:59:36Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/ShftIn23&amp;diff=7673476&amp;oldid=prev</id>
		<title>EducationBot в 14:19, 14 мая 2023</title>
		<link rel="alternate" type="text/html" href="http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/ShftIn23&amp;diff=7673476&amp;oldid=prev"/>
		<updated>2023-05-14T14:19:50Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 18:19, 14 мая 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l9&quot;&gt;Строка 9:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 9:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Код==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Код==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;c&quot; line=&quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot; enclose=&quot;div&lt;/del&gt;&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;c&quot; line=&quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//**************************************************************//&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//**************************************************************//&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//  Название    : Печать включенных настроек                    //&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//  Название    : Печать включенных настроек                    //&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>EducationBot</name></author>
	</entry>
	<entry>
		<id>http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/ShftIn23&amp;diff=4571484&amp;oldid=prev</id>
		<title>Myagkij в 05:33, 24 февраля 2023</title>
		<link rel="alternate" type="text/html" href="http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/ShftIn23&amp;diff=4571484&amp;oldid=prev"/>
		<updated>2023-02-24T05:33:50Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 09:33, 24 февраля 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l242&quot;&gt;Строка 242:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 242:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;references /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;references /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Навигационная таблица/Портал/Arduino}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Пример]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Пример]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Примеры]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Примеры]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Пример программирования Arduino]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Пример программирования Arduino]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Примеры программирования Arduino]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Примеры программирования Arduino]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Myagkij</name></author>
	</entry>
	<entry>
		<id>http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/ShftIn23&amp;diff=25880&amp;oldid=prev</id>
		<title>Myagkij: Новая страница: «{{Arduino панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}}  =Печать включенных настроек&lt;re…»</title>
		<link rel="alternate" type="text/html" href="http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/ShftIn23&amp;diff=25880&amp;oldid=prev"/>
		<updated>2017-02-20T18:49:34Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «{{Arduino панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}}  =Печать включенных настроек&amp;lt;re…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Arduino панель перехода}}&lt;br /&gt;
{{Перевод от Сubewriter}}&lt;br /&gt;
{{Myagkij-редактор}}&lt;br /&gt;
&lt;br /&gt;
=Печать включенных настроек&amp;lt;ref&amp;gt;[https://www.arduino.cc/en/Tutorial/ShftIn23 www.arduino.cc - ShftIn23]&amp;lt;/ref&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
Это скетч для [[Arduino:Продукты/Продукты Arduino|платы Arduino]] и двух сдвиговых регистров '''CD4021B'''. Он считывает данные с переключателей, подключенных к сдвиговым регистрам, сравнивает их с заданными настройками и сообщает, какие именно настройки включены. '''«Настройками»''' служат звуковые эффекты.&lt;br /&gt;
&lt;br /&gt;
==Код==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line=&amp;quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
//**************************************************************//&lt;br /&gt;
//  Название    : Печать включенных настроек                    //&lt;br /&gt;
//  Автор       : Кэрлин Мо                                     //&lt;br /&gt;
//  Дата        : 25 января 2007 года                           //&lt;br /&gt;
//  Версия      : 1.0                                           //&lt;br /&gt;
//  Примечания  : Скетч для использования с двумя сдвиговыми    //&lt;br /&gt;
//              : регистрами CD4021B                            //&lt;br /&gt;
//**************************************************************//&lt;br /&gt;
&lt;br /&gt;
// задаем номера для интерфейсных контактов:&lt;br /&gt;
int latchPin = 8;&lt;br /&gt;
int dataPin = 9;&lt;br /&gt;
int clockPin = 7;&lt;br /&gt;
&lt;br /&gt;
// задаем переменные, которые будут хранить данные для &lt;br /&gt;
// каждого сдвигового регистра; в целях отладки лучше начать &lt;br /&gt;
// со значений без «0»:    &lt;br /&gt;
byte switchVar1 = 72;  //01001000&lt;br /&gt;
byte switchVar2 = 159; //10011111&lt;br /&gt;
&lt;br /&gt;
// задаем массив со значениями для каждого контакта &lt;br /&gt;
// на первом сдвиговом регистре:  &lt;br /&gt;
char note2sing[] = {&lt;br /&gt;
  'C', 'd', 'e', 'f', 'g', 'a', 'b', 'c'}; &lt;br /&gt;
&lt;br /&gt;
// задаем массив со значениями для 1-7 (не 0) контактов &lt;br /&gt;
// на втором сдвиговом регистре; без 0, потому что этот контакт&lt;br /&gt;
// будет использоваться для флагового значения: &lt;br /&gt;
byte settingVal[] = {&lt;br /&gt;
  0, 0, 0, 0, 0, 0, 0};   &lt;br /&gt;
&lt;br /&gt;
boolean MuteBit = 0;          &lt;br /&gt;
boolean OctShftBit = 1;&lt;br /&gt;
boolean DelayBit = 2;          &lt;br /&gt;
boolean ReverbBit = 3;&lt;br /&gt;
boolean VibratoBit = 4;&lt;br /&gt;
boolean FunkifyBit = 5;&lt;br /&gt;
boolean DampenBit = 6; &lt;br /&gt;
&lt;br /&gt;
// флаговая переменная для определения того, находится ли скетч &lt;br /&gt;
// в режиме обновления настроек:  &lt;br /&gt;
byte settingSwitch = 0;  &lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // запускаем последовательную коммуникацию: &lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
&lt;br /&gt;
  // задаем режимы для контактов:&lt;br /&gt;
  pinMode(latchPin, OUTPUT);&lt;br /&gt;
  pinMode(clockPin, OUTPUT); &lt;br /&gt;
  pinMode(dataPin, INPUT);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
&lt;br /&gt;
  // подаем импульс на контакт-защелку;&lt;br /&gt;
  // чтобы собрать параллельные данные, задаем ему значение «1»:&lt;br /&gt;
  digitalWrite(latchPin,1);&lt;br /&gt;
  // ждем:&lt;br /&gt;
  delayMicroseconds(20);&lt;br /&gt;
  // задаем ему «0», чтобы передать последовательные данные: &lt;br /&gt;
  digitalWrite(latchPin,0);&lt;br /&gt;
&lt;br /&gt;
  // пока сдвиговые регистры переключены в последовательный режим, &lt;br /&gt;
  // собираем все их данные в байт; сначала это делает регистр, &lt;br /&gt;
  // подключенный к чипу: &lt;br /&gt;
  switchVar1 = shiftIn(dataPin, clockPin);&lt;br /&gt;
  switchVar2 = shiftIn(dataPin, clockPin);&lt;br /&gt;
&lt;br /&gt;
  // показываем результат; если первый контакт получит значение HIGH, &lt;br /&gt;
  // то «0», стоящий в старшей части байта (7, 6, 5 и т.д.), &lt;br /&gt;
  // будет удален:   &lt;br /&gt;
  Serial.println(switchVar1, BIN);&lt;br /&gt;
  Serial.println(switchVar2, BIN);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  // этот цикл loop() бит за битом прочесывает байт, &lt;br /&gt;
  // содержащий данные сдвигового регистра; найдя значение HIGH (1),&lt;br /&gt;
  // он печатает соответствующее место в массиве: &lt;br /&gt;
  for (int n=0; n&amp;lt;=7; n++)&lt;br /&gt;
  {&lt;br /&gt;
    // таким образом, когда «n» равно «3», код сравнивает биты &lt;br /&gt;
    // в switchVar1 и двоичное число «00001000», возвращая «true» &lt;br /&gt;
    // лишь в том случае, если в этом бите (т.е. контакте) &lt;br /&gt;
    // есть значение «1», присланное от сдвигового регистра:  &lt;br /&gt;
    if (switchVar1 &amp;amp; (1 &amp;lt;&amp;lt; n) ){&lt;br /&gt;
      // печатаем значение из этого места в массиве: &lt;br /&gt;
      Serial.println(note2sing[n]);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //--- ВТОРОЙ СДВИГОВЫЙ РЕГИСТР&lt;br /&gt;
  // он ведет себя чуть сложнее &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  // если переключатель, подключенный к контакту 7, &lt;br /&gt;
  // находится в состоянии HIGH: &lt;br /&gt;
  if (switchVar2 &amp;amp; (1 &amp;lt;&amp;lt; 7) ){&lt;br /&gt;
    // если переключатель, подключенный к контакту 7, &lt;br /&gt;
    // находится в состоянии HIGH:&lt;br /&gt;
    Serial.println(&amp;quot;Check, Check&amp;quot;); //  «Идет обновление настроек» &lt;br /&gt;
    // задаем флаговой переменной значение «1», чтобы сообщить скетчу, &lt;br /&gt;
    // что идет обновление настроек:&lt;br /&gt;
    settingSwitch = 1;&lt;br /&gt;
  }&lt;br /&gt;
  // если переключатель находится в состоянии LOW... &lt;br /&gt;
  else {&lt;br /&gt;
    //...и если в последний раз при проверке оператором if() &lt;br /&gt;
    // этот переключатель находился в состоянии HIGH (т.е. если &lt;br /&gt;
    // переменная settingSwitch по-прежнему имеет значение «1»):&lt;br /&gt;
    if (settingSwitch) {&lt;br /&gt;
      //...то задаем переменной settingSwitch значение «0»: &lt;br /&gt;
      settingSwitch=0;&lt;br /&gt;
&lt;br /&gt;
      // просто печатаем, какие настройки включены:&lt;br /&gt;
      if (getBit(switchVar2, MuteBit)) {&lt;br /&gt;
        Serial.print(&amp;quot;Mute On   &amp;quot;);  //  &amp;quot;Звук выключен&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
      if (getBit(switchVar2, OctShftBit)) {&lt;br /&gt;
        Serial.println(&amp;quot;Octave Shift On   &amp;quot;);  //  &amp;quot;Смещение октавы включено&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
      if (getBit(switchVar2, DelayBit)) {&lt;br /&gt;
        Serial.println(&amp;quot;Delay On   &amp;quot;);  //  &amp;quot;Задержка включена&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
      if (getBit(switchVar2, ReverbBit)) {&lt;br /&gt;
        Serial.println(&amp;quot;Reverb On   &amp;quot;);  //  &amp;quot;Реверберация включена&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
      if (getBit(switchVar2, VibratoBit)) {&lt;br /&gt;
        Serial.println(&amp;quot;Vibrato On   &amp;quot;);  //  &amp;quot;Вибрация включена&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
      if (getBit(switchVar2, FunkifyBit)) {&lt;br /&gt;
        Serial.println(&amp;quot;Funkified   &amp;quot;);  //  &amp;quot;Фанкизация включена&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
      if (getBit(switchVar2, DampenBit)) {&lt;br /&gt;
        Serial.println(&amp;quot;Note Dampened   &amp;quot;);  //  &amp;quot;Приглушение включено&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }        &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  // пустое место: &lt;br /&gt;
  Serial.println(&amp;quot;-------------------&amp;quot;);&lt;br /&gt;
  // вставляем задержку, чтобы все как следует допечаталось:&lt;br /&gt;
  delay(500);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//------------------------------------------------конец главного цикла&lt;br /&gt;
&lt;br /&gt;
////////// ----------------------------------- функция shiftIn()&lt;br /&gt;
///// в качестве аргументов ей требуются лишь контакт для данных &lt;br /&gt;
///// и контакт-защелка; возвращает байт, у которого каждый бит &lt;br /&gt;
///// соответствует какому-либо контакту сдвигового регистра: &lt;br /&gt;
///// 7-ой бит – это 7-ой контакт, 0-ой бит – это 0-ой контакт&lt;br /&gt;
&lt;br /&gt;
byte shiftIn(int myDataPin, int myClockPin) { &lt;br /&gt;
  int i;&lt;br /&gt;
  int temp = 0;&lt;br /&gt;
  int pinState;&lt;br /&gt;
  byte myDataIn = 0;&lt;br /&gt;
&lt;br /&gt;
  pinMode(myClockPin, OUTPUT);&lt;br /&gt;
  pinMode(myDataPin, INPUT);&lt;br /&gt;
&lt;br /&gt;
// 8 раз подаем на тактовый контакт значение HIGH (0,..,7),&lt;br /&gt;
// т.е. при каждом прохождении цикла for();&lt;br /&gt;
&lt;br /&gt;
// в начале каждого цикла мы задаем тактовому контакту значение LOW;&lt;br /&gt;
// это нужно для последующего перехода из LOW в HIGH, чтобы сдвиговый &lt;br /&gt;
// регистр поменял состояние на основе значения в следующем бите &lt;br /&gt;
// последовательного потока данных;&lt;br /&gt;
&lt;br /&gt;
// регистр передает информацию о контактах в порядке с 7-го по 0-ой,&lt;br /&gt;
// поэтому наша функция ведет отсчет в обратном порядке:&lt;br /&gt;
&lt;br /&gt;
  for (i=7; i&amp;gt;=0; i--)&lt;br /&gt;
  {&lt;br /&gt;
    digitalWrite(myClockPin, 0);&lt;br /&gt;
    delayMicroseconds(2);&lt;br /&gt;
    temp = digitalRead(myDataPin);&lt;br /&gt;
    if (temp) {&lt;br /&gt;
      pinState = 1;&lt;br /&gt;
      // несмотря ни на что, задаем биту значение «0»: &lt;br /&gt;
      myDataIn = myDataIn | (1 &amp;lt;&amp;lt; i);&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
      pinState = 0;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // печатаем отладочную информацию (если отладка не нужна,&lt;br /&gt;
    // оставьте эти строчки закоментированными):&lt;br /&gt;
    //Serial.print(pinState);&lt;br /&gt;
    //Serial.print(&amp;quot;     &amp;quot;);&lt;br /&gt;
    //Serial.println (dataIn, BIN);&lt;br /&gt;
&lt;br /&gt;
    digitalWrite(myClockPin, 1);&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
  // печатаем пустое место, разделяющее отладочные данные:&lt;br /&gt;
  //Serial.println();&lt;br /&gt;
  //Serial.println(myDataIn, BIN);&lt;br /&gt;
  return myDataIn;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
////// ----------------------------------------функция getBit()&lt;br /&gt;
boolean getBit(byte myVarIn, byte whatBit) {&lt;br /&gt;
  boolean bitState;&lt;br /&gt;
  bitState = myVarIn &amp;amp; (1 &amp;lt;&amp;lt; whatBit);&lt;br /&gt;
  return bitState;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
////// маленькая дополнительная функция &lt;br /&gt;
////// ----------------------------------------функция setBit()&lt;br /&gt;
byte setBit(byte myVarIn, byte whatBit, boolean s) {&lt;br /&gt;
  boolean bitState;&lt;br /&gt;
  if (s) {&lt;br /&gt;
    myVarIn = myVarIn | (1 &amp;lt;&amp;lt; whatBit);&lt;br /&gt;
  } &lt;br /&gt;
  else {&lt;br /&gt;
    myVarIn = myVarIn &amp;amp; ~(1 &amp;lt;&amp;lt; whatBit);&lt;br /&gt;
  }&lt;br /&gt;
  return myVarIn;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= См.также=&lt;br /&gt;
&lt;br /&gt;
=Внешние ссылки=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Категория:Пример]]&lt;br /&gt;
[[Категория:Примеры]]&lt;br /&gt;
[[Категория:Пример программирования Arduino]]&lt;br /&gt;
[[Категория:Примеры программирования Arduino]]&lt;/div&gt;</summary>
		<author><name>Myagkij</name></author>
	</entry>
</feed>