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

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Для новичков (http://pccar.ru/forumdisplay.php?f=170)
-   -   Нужна помощь с MCP41050 (http://pccar.ru/showthread.php?t=24146)

demtro 01.05.2016 20:07

Нужна помощь с MCP41050
 
Вложений: 1
Ребят, помогите разобраться с управлением mcp41050 через ардуино, почему-то микруха не реагирует ни на какие действия, на данный момент пытаюсь записать в микруху постоянное значение на резистор

skanch 01.05.2016 22:37

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

demtro 08.05.2016 21:38

Вложений: 1
запустить потенциометр получилось вот таким скетчем, но значения очень нестабильны, постоянно плавают, как можно попробовать стабилизировать?

ali_vlad 08.05.2016 22:24

Подтяжки кнопки по питанию есть? Обработка дребезга отсутствует. На форуме ардуино есть целый раздел, посвященный кнопке. Очень советую почитать хотя бы несколько первых страниц, тогда будет понимание.

demtro 08.05.2016 22:36

Контакт постоянно подтянут к +, кнопка замыкает контакт на землю, кнопка с фиксацией

ali_vlad 09.05.2016 06:12

А дребезг контактов? Можно использовать библиотеку bounce.h, а можно тупо delay().
Посмотри основной скетч из этой темы, в частности обработку нажатия кнопки и сравнение старого и нового значения. Это типо фильтра. Работает стабильно.

skanch 09.05.2016 09:26

Цитата:

Сообщение от demtro (Сообщение 360173)
запустить потенциометр получилось вот таким скетчем, но значения очень нестабильны, постоянно плавают, как можно попробовать стабилизировать?

А "родной скетч" с ресурса не заработал?
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"); 



demtro 09.05.2016 09:42

Цитата:

Сообщение от ali_vlad (Сообщение 360187)
А дребезг контактов? Можно использовать библиотеку bounce.h, а можно тупо delay().
Посмотри основной скетч из этой темы, в частности обработку нажатия кнопки и сравнение старого и нового значения. Это типо фильтра. Работает стабильно.

Я знаю про дребезг контактов, но это при аналоговом считывании актуально, у меня же кнопка HIGH-LOW, у ардуины ниже 2В это LOW, выше 3В это HIGH. Поэтому дребезг кнопки отпадает
to Skanch не пробовал т.к не совсем понял схему подключения, но суть должна быть та же, брал его за основу, поменял только условие и поставил фиксированное значение на выход.

skanch 09.05.2016 09:56

Вложений: 2
Вот подключение для MEGA и UNO. Для других плат нужно смотреть где располагаются выводы MISO, MOSI и SCK.

ali_vlad 09.05.2016 10:32

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


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

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