Jump to content
ELFORUM - Forumul electronistilor

ADC MCP3201 citit cu nodemcu (esp8266)


digix

Recommended Posts

Daca conectez IN+ la 3.3V si IN- la GND am in consola seriala valori intre 4092-4095.

 

Am vrut ceva mai stabil si am folosit o referinta de 2.5V (MCP1525) citirea devine stabila dar este 4091 in loc de 4095 cand

IN+ este conectat la Vref si IN- la GND.

 

Din datasheet MCP3201 lucreaza la frecvente intre 0.8-1.6MHz in functie de tensiunea de alimentare (2.7-5V)

Unde gresesc ?

 

Codul utilizat:

 

 

#include <SPI.h>
const int chipSelectPinADC = 15;
unsigned int result = 0;
byte inByte = 0;
void setup()
{
Serial.begin(9600);
SPI.begin();
SPI.setBitOrder(MSBFIRST);
//SPI.setClockDivider(SPI_CLOCK_DIV8);
SPI.setFrequency(800000);
pinMode(chipSelectPinADC, OUTPUT);
digitalWrite(chipSelectPinADC, HIGH);
}
void loop()
{
digitalWrite(chipSelectPinADC, LOW);
result = SPI.transfer(0x00);
result = result << 8;
inByte = SPI.transfer(0x00);
result = result | inByte;
digitalWrite(chipSelectPinADC, HIGH);
result = result >> 1;
result = result & 0b0000111111111111;
Serial.println(result);
delay(1000);
}

 

 

 

Link to comment
  • Replies 36
  • Created
  • Last Reply

Top Posters In This Topic

  • digix

    14

  • UDAR

    8

  • nico_2010

    5

  • Liviu M

    4

Top Posters In This Topic

Posted Images

De câte ori am lucrat cu SPI-ul problemele au venit din setarea modului corect de funcționare. MCP-ul functionează în modul 0,0 și 1,1 (din datasheet). Modul se referă la polaritatea clock-ului si faza pe care se citesc datele. Vezi să nu fie de aici. O altă posibilitate este să nu ai SPI-ul configurat corect sau conectat corect.

Link to comment

Am incercat cu clock intre 0.1-1.6MHz si rezutatul este acelasi.

 

Am masurat referinta si este ok, da este pe breadboard si aici chiar am ceva suspiciuni desi

este un Wish de caliate cred ca trebuie incercat si pe un cablaj.

Link to comment

Lucrul pe breadboard poate induce ciudatenii: contacte imperfecte (rezistenta diferita de zero), ring, continuitate precara (sau chiar intreruperi) pe acelasi sir de pini (mai ales pe barele de alimentare)

Link to comment

Da este esp8266 dar nu vad ce legatura ar fi intre WiFi si ce citesc eu pe SPI.

Folosesc nodemcu cand fac teste pentru ca are port usb,face autoreset dupa upload, mi-e mai comod dar in final

softul ajunge pe un esp8266-07.

Link to comment

Wifi-ul consuma mult, ma gandeam la un eventual offset pe masa. Mi s-a intamplat sa vad diverse mase laund-o la plimbare din cauze de consum.


LE Dar ai dreptate, sunt la capatul gresit al montajului. Nu folosesti ADC-ul din ESP.

Link to comment

Am mutat partea de referinta 2.5V pe alta zona din breadboard si am un 4095 curat si constant.

Concluzia este ca in cazul ADC-urilor testele trebuie facute pe cablaj lipit.

 

Va multumesc pentru sfaturi !

Link to comment

Revin cu intrebari despre protectia intrarii la supratensiune.

 

Am pe intrare un divizor de tensiune format din R1=30K 0.1% si R2=10K 0.1% asta imi permite o plaja de intrare 0-10V.

Am pus un condensator 0.1uF pe intrarea ADC si am citiri fara flucuatii pentru o tensiune de intrare constanta.

Din volt in volt am comparat rezutatele cu citirile de pe un voltmetru de caliatate si diferentele sunt minore, la a 3-a zecimala.

 

Referinta mea este de 2.5V si ma gandesc sa pun un zener de 2.5V pe intrare.

M-am documentat un pic si condensatorul trebuie sa fie cu pierderi cat mai mici.

 

Ce tip de condensator ar fi cel mai potrivit ?

Cat de mult influenteaza prezenta unui zener functionarea corecta a ADC ?

Exista o alta metoda nu prea sofisticata de protectie ?

Link to comment

Un condensator de tip "poliester metalizat" sau "multistrat" este foarte potrivit pentru aplicatia ta, cu conditia de a avea o tensiune de functionare mult mai mare decat tensiunea maxima prezenta la bornele sale. Povestea cu condensatorul cu pierderi cat mai mici se pune doar in cazul in care semnalul aplicat la intrare este semnal alternativ.

Pentru a doua intrebare (si cred ca si pentru a treia): http://www.avrfreaks.net/forum/using-zener-diode-adc-input-protection

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines