PCCar.ru - Ваш автомобильный компьютер

Вернуться   PCCar.ru - Ваш автомобильный компьютер > MP3Car ТехИнфа > AndroidCar > Для новичков

Ответ
 
Опции темы Поиск в этой теме
Старый 01.05.2016, 20:07   #1
demtro
Старший Пользователь
 
Регистрация: 17.12.2014
Возраст: 32
Город: Самара
Регион: 63, 163
Машина: Lifan Solano
Сообщений: 184
demtro is on a distinguished road
По умолчанию Нужна помощь с MCP41050

Ребят, помогите разобраться с управлением mcp41050 через ардуино, почему-то микруха не реагирует ни на какие действия, на данный момент пытаюсь записать в микруху постоянное значение на резистор
Вложения
Тип файла: txt 1.txt (360 байт, 776 просмотров)
demtro вне форума   Ответить с цитированием
Старый 01.05.2016, 22:37   #2
skanch
Модератор
 
Аватар для skanch
 
Регистрация: 19.01.2010
Возраст: 58
Город: Санкт-Петербург
Регион: 78, 98
Сообщений: 2,600
skanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant future
По умолчанию

Вот здесь есть библиотеки по подключению к Ардуино. А здесь обсуждалась подобная тема.
Вот тема использования MCP41050 для управления громкостью усилителя.

Последний раз редактировалось skanch; 01.05.2016 в 23:29.
skanch вне форума   Ответить с цитированием
Старый 08.05.2016, 21:38   #3
demtro
Старший Пользователь
 
Регистрация: 17.12.2014
Возраст: 32
Город: Самара
Регион: 63, 163
Машина: Lifan Solano
Сообщений: 184
demtro is on a distinguished road
По умолчанию

запустить потенциометр получилось вот таким скетчем, но значения очень нестабильны, постоянно плавают, как можно попробовать стабилизировать?
Вложения
Тип файла: txt 2.txt (524 байт, 838 просмотров)
demtro вне форума   Ответить с цитированием
Старый 08.05.2016, 22:24   #4
ali_vlad
Старший Пользователь
 
Регистрация: 21.06.2014
Возраст: 46
Регион: 05
Машина: Hyundai Accent II
Сообщений: 556
ali_vlad is on a distinguished road
По умолчанию

Подтяжки кнопки по питанию есть? Обработка дребезга отсутствует. На форуме ардуино есть целый раздел, посвященный кнопке. Очень советую почитать хотя бы несколько первых страниц, тогда будет понимание.
ali_vlad вне форума   Ответить с цитированием
Старый 08.05.2016, 22:36   #5
demtro
Старший Пользователь
 
Регистрация: 17.12.2014
Возраст: 32
Город: Самара
Регион: 63, 163
Машина: Lifan Solano
Сообщений: 184
demtro is on a distinguished road
По умолчанию

Контакт постоянно подтянут к +, кнопка замыкает контакт на землю, кнопка с фиксацией
demtro вне форума   Ответить с цитированием
Старый 09.05.2016, 06:12   #6
ali_vlad
Старший Пользователь
 
Регистрация: 21.06.2014
Возраст: 46
Регион: 05
Машина: Hyundai Accent II
Сообщений: 556
ali_vlad is on a distinguished road
По умолчанию

А дребезг контактов? Можно использовать библиотеку bounce.h, а можно тупо delay().
Посмотри основной скетч из этой темы, в частности обработку нажатия кнопки и сравнение старого и нового значения. Это типо фильтра. Работает стабильно.
ali_vlad вне форума   Ответить с цитированием
Старый 09.05.2016, 09:26   #7
skanch
Модератор
 
Аватар для skanch
 
Регистрация: 19.01.2010
Возраст: 58
Город: Санкт-Петербург
Регион: 78, 98
Сообщений: 2,600
skanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant future
По умолчанию

Цитата:
Сообщение от demtro Посмотреть сообщение
запустить потенциометр получилось вот таким скетчем, но значения очень нестабильны, постоянно плавают, как можно попробовать стабилизировать?
А "родной скетч" с ресурса не заработал?
PHP код:
#include "AH_MCP41xxx.h"
#include <SPI.h>

#define DATAOUT  11   //uno MOSI   //IC SI
#define DATAIN   12   //uno MISO   //IC not used
#define SPICLOCK 13   //uno SCK    //IC SCK
#define CHIPSELECT 10   //uno ss     //IC CS

byte resistance 0;

AH_MCP41xxx mcp41010;
 
void setup()
{  
 
Serial.begin(9600);
 
Serial.println("Setup ready");
 
mcp41010.init_MCP41xxx(CHIPSELECT);  //spi pins initialisation
 
mcp41010.reset();
}

void loop()
{
 
Serial.print(resistance);
 
Serial.print(": "); 
 
mcp41010.setValue(resistance);  //value range 0-255 (8-bit)
 
delay(100);
 
resistance++;
 if (
resistance==255) {resistance=0;}
 
int signal analogRead(A0);
 
Serial.print(signal);
 
Serial.print(" ~");
 
Serial.print((float)signal/1024*5);
 
Serial.println("V"); 


Последний раз редактировалось skanch; 09.05.2016 в 10:06.
skanch вне форума   Ответить с цитированием
Старый 09.05.2016, 09:42   #8
demtro
Старший Пользователь
 
Регистрация: 17.12.2014
Возраст: 32
Город: Самара
Регион: 63, 163
Машина: Lifan Solano
Сообщений: 184
demtro is on a distinguished road
По умолчанию

Цитата:
Сообщение от ali_vlad Посмотреть сообщение
А дребезг контактов? Можно использовать библиотеку bounce.h, а можно тупо delay().
Посмотри основной скетч из этой темы, в частности обработку нажатия кнопки и сравнение старого и нового значения. Это типо фильтра. Работает стабильно.
Я знаю про дребезг контактов, но это при аналоговом считывании актуально, у меня же кнопка HIGH-LOW, у ардуины ниже 2В это LOW, выше 3В это HIGH. Поэтому дребезг кнопки отпадает
to Skanch не пробовал т.к не совсем понял схему подключения, но суть должна быть та же, брал его за основу, поменял только условие и поставил фиксированное значение на выход.
demtro вне форума   Ответить с цитированием
Старый 09.05.2016, 09:56   #9
skanch
Модератор
 
Аватар для skanch
 
Регистрация: 19.01.2010
Возраст: 58
Город: Санкт-Петербург
Регион: 78, 98
Сообщений: 2,600
skanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant future
По умолчанию

Вот подключение для MEGA и UNO. Для других плат нужно смотреть где располагаются выводы MISO, MOSI и SCK.
Миниатюры
Нажмите на изображение для увеличения
Название: WP_20160508_20_01_00_Pro.jpg
Просмотров: 490
Размер:	115.6 Кб
ID:	43683   Нажмите на изображение для увеличения
Название: 125.jpg
Просмотров: 536
Размер:	121.6 Кб
ID:	43684  
skanch вне форума   Ответить с цитированием
Старый 09.05.2016, 10:32   #10
ali_vlad
Старший Пользователь
 
Регистрация: 21.06.2014
Возраст: 46
Регион: 05
Машина: Hyundai Accent II
Сообщений: 556
ali_vlad is on a distinguished road
По умолчанию

Дребезг кнопок присутствует при любом считывании, как при аналоговом, так и при цифровом. Это физическое свойство любой кнопки, переключателя, реле, геркона. Для борьбы с дребезгом в скетче из поста N°7 в цикле loop() присутствует delay(100); а в Вашем скетче нет ни какой обработки дребезга.
Попробуйте в своем скетче вместо mcp41050.setValue(xx); временно использовать Serialprintln(low или high); сначала без delay, а потом с использованием delay и посмотрите результат в мониторе порта.
И совет на будущее: чаще используйте монитор для вывода состояния процессов, идущих в цикле, чтобы наглядно было видно, что там происходит.
ali_vlad вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 16:39.


Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot