![]()  | 
	
| 
			
			 | 
		#61 | 
| 
			
			 Administrator 
			
			
			
				
			
			Регистрация: 12.04.2010 
				Адрес: Москва 
				
				
					Сообщений: 9,618
				 
				
				
				Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
		
		
			
			 
			
			Еще два пина это кнопка, ее тоже можно подключить через резистор 
		
		
		
			 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#62 | 
| 
			
			 Administrator 
			
			
			
				
			
			Регистрация: 12.04.2010 
				Адрес: Москва 
				
				
					Сообщений: 9,618
				 
				
				
				Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
		
		
			
			 
			
			Хотя кнопку лучше повесить на другой пин. Так как если понадобится вращение с нажатием, то вышеприведенная схема не будет работать в этом режиме
		 
		
		
		
		
		
		
			
		
		
		
		
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#63 | 
| 
			
			 Senior Member 
			
			
			
			Регистрация: 22.09.2017 
				
				
				
					Сообщений: 338
				 
				
				
				Вес репутации: 443 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
		
		
			
			 
			
			В протеусе не нашел энкодера, поэтому наколхозил такую схему, с помощью моторчика 
		
		
		
		
		
		
		
		
			 :![]() Только как применить вашу схему к моей, мне невдомек..  
		Последний раз редактировалось sana555; 17.04.2018 в 14:47.  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#64 | 
| 
			
			 Senior Member 
			
			
			
			Регистрация: 22.09.2017 
				
				
				
					Сообщений: 338
				 
				
				
				Вес репутации: 443 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
		
		
			
			 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#65 | 
| 
			
			 Administrator 
			
			
			
				
			
			Регистрация: 12.04.2010 
				Адрес: Москва 
				
				
					Сообщений: 9,618
				 
				
				
				Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
		
		
			
			 
			
			Я не представляю как это должно работать 
		
		
		
		
		
		
			
		
		
		
		
	Кнопку можно повесить на любой вход Хотя тогда экономи всего 1 вывод контроллера и получаем геморой. Проще тогда как и задумывалось на цифровые пины подключить  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#66 | |
| 
			
			 Senior Member 
			
			
			
			Регистрация: 22.09.2017 
				
				
				
					Сообщений: 338
				 
				
				
				Вес репутации: 443 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
		
		
			
			 Цитата: 
	
   - два энкодера - экономия уже на 2 пина...  Моторчик сейчас служит для имитации крутилки и для включения/отключения двух релюшек. А с релюшек и кнопки уже идут аналоговые сигналы на ардуино. В общем все работает как нужно: ![]() Демонстрационный скейтч (если кому нужен): Развернуть для просмотраКод: 
	byte EncoderRead;
byte EncoderState;
byte EncoderLastState;
byte EncoderCode;
byte EncoderRot;
//демонстрация
byte up;
byte dw;
byte sw;
void setup() {
  Serial.begin(9600); 
}
void loop() {  
  EncoderRead = analogRead(A5)/4; // 127(148) (148- примерно центр между 127 и 170) 170(180) (-/-) 191(223) (-/-) 255
                                  // делим на 4 для простоты  
  if (EncoderRead < 223) {sw=0;} //если кнопка не нажата, то обнуляем значение                              
  if (EncoderRead > 25) { //если что то нажато:        
    if (EncoderRead < 148) {EncoderState = 1;} //замкнут первый резистор(2,49В)
    if (EncoderRead >= 148 && EncoderRead < 180) {EncoderState = 2;} //замкнут второй резистор(3,33В)
    if (EncoderRead >= 180 && EncoderRead < 223) {EncoderState = 3;} //замкнуто оба резистора(3.74В)
    if (EncoderRead >= 223) {EncoderState = 4;} //нажата кнопка
    
    if (EncoderState != EncoderLastState) { //если возникло новое состояние
      EncoderCode = EncoderCode * 10 + EncoderState; //записываем в EncoderCode последовательность возникновения EncoderState
      if (EncoderCode == 13 || EncoderCode == 32) { // вычисляется последовательность вправо: 132(13 или 32) или влево: 231(23 или31) 
        EncoderRot = 1;
        EncoderCode = 0;
      }
      if (EncoderCode == 23 || EncoderCode == 31) {
        EncoderRot = 2;
        EncoderCode = 0;
      }      
      if (EncoderCode == 4) { //если нажата кнопка
        EncoderRot = 3;
        EncoderCode = 0;
      } 
      if (EncoderCode > 33) { //если какой то глюк
        EncoderRot = 0;
        EncoderCode = 0;
      }      
      EncoderLastState = EncoderState;
    }
  }
  else { //обнуляем переменные
    EncoderCode = 0;
    EncoderState = 0;
    EncoderLastState = 0;
  }   
//демонстрация: 
  if (EncoderRot == 1) {
    EncoderRot = 0;
    up++;   
  }
  if (EncoderRot == 2) {
    EncoderRot = 0;
    dw++;    
  }  
  if (EncoderRot == 3) {
    EncoderRot = 0;
    sw=1;  
  }
    Serial.print("UP=");
    Serial.print(up);
    Serial.print(" DOWN=");
    Serial.print(dw);
    Serial.print(" SWITCH=");  
    Serial.println(sw);
//    Serial.print("  ");
//    Serial.println(analogRead(A5));
[свернуть] Последний раз редактировалось sana555; 24.04.2018 в 15:02.  | 
|
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#67 | 
| 
			
			 Administrator 
			
			
			
				
			
			Регистрация: 12.04.2010 
				Адрес: Москва 
				
				
					Сообщений: 9,618
				 
				
				
				Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
		
		
			
			 
			
			Класс , а я думал что не разберешься как считывать показания энкодера с аналогового входа. 
		
		
		
		
		
		
			
		
		
		
		
	Если вращение с нажатием не нужно, то можно сделать так, нажатие а потом вращение без нажатия. Только нужно отображать на дисплее режим энкодера Можно оба энкодера повесить на 1 аналоговый вход И конденсатор лучше поменьше емкость поставить 0,01мкф  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#68 | 
| 
			
			 Senior Member 
			
			
			
				
			
			Регистрация: 22.10.2015 
				Адрес: Там где сосны и песок 
				
				
					Сообщений: 1,534
				 
				
				
				Вес репутации: 1602 ![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
		
		
			
			 
			
			Ладно ... с ними с пинами...  
		
		
		
		
		
		
			![]() Сделали - отлично.. Давайте выкладывайте рецепты домашней колбасы  , хлеба, грибов, пива, табака .... и еще чего там есть в наличии с рецептурами и видео ![]() Так как на пенсию ничего не заработано (30 лет "реформ" - ..пта) - будет чем заняться, маленький интернет магазинчик. И сосиски - Home Made © и табак с подоконника... === Какой "Умный дом" - без жратвы  , для курилки в самый раз  
		
				__________________ 
		
		
		
		
		
			Читаю ваши мысли по аватару ... Последний раз редактировалось sunny; 24.04.2018 в 16:47.  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#69 | ||||
| 
			
			 Senior Member 
			
			
			
			Регистрация: 22.09.2017 
				
				
				
					Сообщений: 338
				 
				
				
				Вес репутации: 443 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
		
		
			
			 Цитата: 
	
   Цитата: 
	
 ![]() Цитата: 
	
 Цитата: 
	
 ![]() Если потом действительно будет нужно, на пенсии, я с удовольствием выложу: Последний раз редактировалось sana555; 24.04.2018 в 17:06.  | 
||||
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#70 | |
| 
			
			 Administrator 
			
			
			
				
			
			Регистрация: 12.04.2010 
				Адрес: Москва 
				
				
					Сообщений: 9,618
				 
				
				
				Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
		
		
			
			 Цитата: 
	
  | 
|
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
![]()  | 
	
	
		
| Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
		
  | 
	
		
  |