EVET 5 deger atlayarak 0-5v almak normalde dönüstürüyor 0-5vAnalog değeri voltaja mı dönüştürmeye çalışıyorsun? Yani 0-4095 arası olan değeri 0-5 arasına mı dönüştürmeye çalışıyorsun
float yeni_adc = fmap(adc, 0, 4095, 0.0, 5.0);
//En alta da bunfonksiyonu gir
float fmap(float x, float in_min, float in_max, float out_min, float out_max) { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; }
MCP4725 = (5.0/4096.0) * MCP4725_value;
MCP4725.setVoltage(MCP4725_value, false);
delay(250);
adcValueRead = analogRead(analogVin);
voltageRead = (adcValueRead * 5.0 )/ 1024.0;
tamam anladım peki millis fonksıyonuna bir ornek verirmisinYani yapmak istediğini anlamadım ama az önceki cevabı güncellendim. Atlayarak okumasını istiyorsan map veya ona benzer bi fonksiyonla yapamazsın
Yani yapmak istediğini anlamadım ama az önceki cevabı güncellendim. Atlayarak okumasını istiyorsan map veya ona benzer bi fonksiyonla yapamazsın
#include <Wire.h> //wire library
#include <Adafruit_MCP4725.h> // MCP4725 library from adafruit
#define analogVin A0 // Analog voltage input to A0
Adafruit_MCP4725 MCP4725;
void setup(void) {
Serial.begin(9600);
MCP4725.begin(0x60); // Default I2C Address of MCP4725 breakout board (sparkfun) If not try 0x61 or 0x62
}
void loop(void) {
uint32_t MCP4725_value;
int adcValueRead = 0;
float voltageRead = 0;
float MCP4725_expected_output;
for (MCP4725_value = 0; MCP4725_value < 4096; MCP4725_value = MCP4725_value + 15)
{
MCP4725_expected_output = (5.0/4096.0) * MCP4725_value;
MCP4725.setVoltage(MCP4725_value, false);
delay(250);
adcValueRead = analogRead(analogVin);
voltageRead = (adcValueRead * 5.0 )/ 1024.0;
Serial.print("MCP4725 Value: ");
Serial.print(MCP4725_value);
Serial.print("\tExpected Voltage: ");
Serial.print(MCP4725_expected_output,3);
Serial.print("\tArduino ADC Value: ");
Serial.print(adcValueRead);
Serial.print("\tArduino Voltage: ");
Serial.println(voltageRead,3);
}
}
#include<Wire.h> //Include kutuphane ı2 data Wire
#define MCP4725 0X60
unsigned long adc;
unsigned long buffer[3];
unsigned int rdtx=0;
unsigned int rdtmax=20;
unsigned long karsilastir=0;
unsigned int karsmax=260;
byte trp=2; // tr out:
byte trn=3; // tr cıkış :
byte kazancled=4; // led output:
byte npoutled=5; // led cıkısı:
byte pwrled=6; // led cıkış :
byte incompy = 7; // buton opamp 1-0 gırış:
byte outcompv=8; // ao-a1 karsılastırma cıkış :
byte incompx = 9; // 8 out koprusu 1-0 gırış:
byte setswic=10; // led cıkısı:
void setup()
{
pinMode ( trp, OUTPUT ); // s :
pinMode ( trn , OUTPUT ); // s :
pinMode ( kazancled, OUTPUT ); // s :
pinMode (npoutled,OUTPUT); // sinyal cıkış NPN ve PNP out :
pinMode (pwrled,OUTPUT); // power ve rdt flaşör :
pinMode(incompy, INPUT); // modlar :
pinMode ( outcompv , OUTPUT ); // s :
pinMode(incompx, INPUT); // modlar :
pinMode ( setswic, OUTPUT ); // s :
Wire.begin(0x60);
Wire.setClock (400000);
}
void loop()
{
karsilastir = analogRead(A6); if (karsilastir <= karsmax )
{digitalWrite(setswic, 1); delay (20);}
else
{digitalWrite(setswic, 0); delay (22); }
{
adc = analogRead(A7);
adc = map(adc, 0 ,1023 ,0,4095 ) ;
buffer[0] = 0b01000000;
buffer[1] = adc >> 4;
buffer[2] = adc << 4;
Wire.beginTransmission (0x60);
Wire.write(buffer[0]);
Wire.write(buffer[1]);
Wire.write(buffer[2]);
Wire.endTransmission();
{delay (20);}
{
rdtx = analogRead(A2);
if (rdtx <= rdtmax )
{digitalWrite(pwrled, 1); delay (20);}
else
{digitalWrite(pwrled, 0); delay (50);}
{digitalWrite(pwrled, 1); delay (60);}
{
unsigned long compr1 ,compr2 ;
compr1 = analogRead ( A0) ;
compr2 = analogRead ( A1) ;
if (compr1 <= compr2 )
{digitalWrite (outcompv ,1); delay(10);}
else
{digitalWrite (outcompv ,0); delay (10);}
}
{
bool incompx = digitalRead(7);
bool incompy = digitalRead(9);
if (incompx == 1 && incompy == 1)
{digitalWrite(trp, 1);
digitalWrite(trn, 1);
digitalWrite(npoutled, 1); delay (150); }
else
{digitalWrite(trp, 0);
digitalWrite(trn, 0);
digitalWrite(npoutled, 0); delay (40); }
}
}
}
}
#include<Wire.h> //Include kutuphane ı2 data Wire
#define MCP4725 0X60
unsigned long adc;
unsigned long buffer[3];
unsigned int rdtx=0;
unsigned int rdtmax=20;
unsigned long karsilastir=0;
unsigned int karsmax=260;
unsigned long zaman1=0,zaman2=0,zaman3=0,zaman4=0,zaman5=0;
byte trp=2; // tr out:
byte trn=3; // tr cıkış :
byte kazancled=4; // led output:
byte npoutled=5; // led cıkısı:
byte pwrled=6; // led cıkış :
byte incompy = 7; // buton opamp 1-0 gırış:
byte outcompv=8; // ao-a1 karsılastırma cıkış :
byte incompx = 9; // 8 out koprusu 1-0 gırış:
byte setswic=10; // led cıkısı:
void setup()
{
pinMode ( trp, OUTPUT ); // s :
pinMode ( trn , OUTPUT ); // s :
pinMode ( kazancled, OUTPUT ); // s :
pinMode (npoutled,OUTPUT); // sinyal cıkış NPN ve PNP out :
pinMode (pwrled,OUTPUT); // power ve rdt flaşör :
pinMode(incompy, INPUT); // modlar :
pinMode ( outcompv , OUTPUT ); // s :
pinMode(incompx, INPUT); // modlar :
pinMode ( setswic, OUTPUT ); // s :
Wire.begin(0x60);
Wire.setClock (400000);
}
void loop()
{ if ( millis () - zaman1 >= 100)
{
karsilastir = analogRead(A6);
if (karsilastir <= karsmax )
{digitalWrite(setswic, !digitalRead(setswic)); }
zaman1 = millis ();
{
{ if (millis () -zaman2 >=100)
adc = analogRead(A7);
adc = map(adc, 0 ,1023 ,0,4095 ) ;
buffer[0] = 0b01000000;
buffer[1] = adc >> 4;
buffer[2] = adc << 4;
Wire.beginTransmission (0x60);
Wire.write(buffer[0]);
Wire.write(buffer[1]);
Wire.write(buffer[2]);
Wire.endTransmission();
zaman2=millis();
{
rdtx = analogRead(A2);
if (rdtx <= rdtmax )
{ if (millis()-zaman3 >= 100)
{digitalWrite(pwrled, !digitalRead( pwrled)); }
else
{digitalWrite(pwrled, !digitalRead( pwrled)); }
zaman3=millis();
{
unsigned long compr1 ,compr2 ;
compr1 = analogRead ( A0) ;
compr2 = analogRead ( A1) ;
if (compr1 <= compr2 )
{ if (millis()-zaman4 >= 100)
{digitalWrite(outcompv, !digitalRead(outcompv )); }
zaman4=millis();
{
bool incompx = digitalRead(7);
bool incompy = digitalRead(9);
if (incompx == 1 && incompy == 1)
{ if (millis()-zaman5 >= 100)
{digitalWrite(trp, !digitalRead(trp )); }
{digitalWrite(trn, !digitalRead(trn )); }
{digitalWrite(npoutled, !digitalRead( npoutled )); }
zaman5=millis();
}}}}}}}}
}
}
Kardeş sana yardımcı olmaya çalışıyorum ama sen ne istediğini tam olarak söylemiyorsun. Mcp entegresinin çıkışını mı kontrol etmek istiyorsun. Yukarıda yazılanları okuyorum acaba ben mi anlamadım diye ama birbirinden alakasız şeyler hep. Yardım istiyorsan sana nasıl yardım edebileceğimi söylemelisin.
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?