zweite Photodiode anschließen und auslesen

Gast #5041873
Hallo,

ich will meiner Schaltung eine zweite Photodiode hinzfügen, die ich wie 
die erste Photodiode auslese.
Wie ist das am besten zu realisieren?
1
/* ltc2440 <------------------------> Arduino
2
 * 11: CS to digital pin 10 (SS pin)
3
 *  7: SDI to digital pin 11 (MOSI pin) 
4
 * 12: SDO to digital pin 12 (MISO pin) 
5
 * 13: SCK to digital pin 13 (SCK pin)  
6
 * 15: BUSY to digital pin 4  
7
 * 14: f0 - ground  
8
 * 10: EXT - ground
9
 *  1: GND - ground 
10
 *  2: VCC - 5V supply  
11
 */
12
  
13

14
int i=0;
15
int LED;
16
#include <SPI.h>  // include the SPI library
17

18
// set I/O pins used in addition to clock, data in, data out
19
const byte slaveSelectPin = 10;  // digital pin 10 for /CS
20
#define DATAREADY 4
21

22

23
void setup() {
24
  // put your setup code here, to run once:
25

26
   
27
    pinMode (DATAREADY, INPUT);         // Pin 4
28
    pinMode (slaveSelectPin, OUTPUT);   // SS Pin 10
29
    digitalWrite(slaveSelectPin,HIGH);  // chip select is active low
30

31
    SPI.begin(); // initialize SPI, covering MOSI,MISO,SCK signals
32
    SPI.setBitOrder(MSBFIRST);  // data is clocked in MSB first
33
    SPI.setDataMode(SPI_MODE0);  // SCLK idle low (CPOL=0), MOSI read on rising edge (CPHI=0)
34
    SPI.setClockDivider(SPI_CLOCK_DIV2);  // system clock = 16 MHz, chip max = 1 MHz
35

36

37

38

39
pinMode(5,OUTPUT);    //IR LED
40
pinMode(7,OUTPUT);    //Red LED
41
Serial.begin(250000);
42

43
}
44

45

46

47

48
//====================================
49
//Main LOOP
50
//====================================
51
void loop() {
52
  // put your main code here, to run repeatedly:
53
double volts;
54
unsigned long in;         // incoming serial 32-bit word
55
unsigned long sum = 0; 
56

57
int s=0;
58
 
59
  if (s==0)                                           
60
    {
61
    
62
      
63
    PORTD |= _BV(LED);
64
    delay(5);
65
    digitalWrite(slaveSelectPin,LOW);
66
    digitalWrite(slaveSelectPin,HIGH);
67
    if(digitalRead(DATAREADY)==LOW)                                           
68
   {
69
     in = SpiRead();
70
        in &= 0B00011111111111111111111111111111;//0x1FFFFFFF; // force high three bits to zero
71
        in = in>>5;   // move lowest 5 bits LSB
72
        sum = in;     
73
        volts = sum *(0.03680586815)
74
        Serial.println(volts);       
75
        PORTD &= ~_BV(LED);
76
        
77
    if(i==1){
78
      i=0;
79
    
80
    } else { 
81
      i=1;
82
    }
83
   }
84
    s=1;
85
        
86
    }
87
 
88
 
89
 if (s==1){          
90
        
91
    if(i==1){
92
     LED=5;    //ir
93
     
94
    
95
     } else {  
96
     
97
    LED=7;   //red
98
    
99
     s=0;
100
    }
101
 }
102
 }
103
 
104
    
105
// =================================================================
106
// SpiRead() -- read out 4 bytes from LTC2440 chip via SPI interface
107
// =================================================================
108

109
unsigned long SpiRead(void) {
110

111
 unsigned long result = 0;
112
 unsigned long b;
113
 
114

115
  digitalWrite(slaveSelectPin,LOW);   // take the SS pin low to select the chip
116
  
117
  b = SPI.transfer(0x28);   // B3
118
  result = b<<8;
119
  b = SPI.transfer(0);   // B2
120
  result |= b;
121
  result = result<<8;
122
  b = SPI.transfer(0);   // B1
123
  result |= b;
124
  result = result<<8;
125
  b = SPI.transfer(0);   // B0
126
  result |= b;
127
 
128
  // take the SS pin high to de-select the chip:
129
  digitalWrite(slaveSelectPin,HIGH);
130
 
131
  return(result);//}
132
}

Das ist zurzeit mein Code für den Arduino UNO.


Alles klappt super so, will aber noch ne 2te Photodiode anschließen und 
weiß leider nicht, wie ich das machen soll :(
Angehängte Dateien:
Gast #5041881
Hasiman schrieb:
> Alles klappt super so, will aber noch ne 2te Photodiode anschließen und
> weiß leider nicht, wie ich das machen soll :(

Ja du weisst auch gar nicht wie diese Schaltung funktioniert,
sonst könntest du sie erweitern.

Du brauchst die Schaltung um U1, U2 nochmal.
Gast #5041885
Meine Überlegung war, dass ich ein weiteren ltc2440 parallel dazu 
schalte, nur dass ich an den Eingang vom 2ten ADC meine 2te Photodiode 
anschließe...
#5041886
@Hasiman (Gast)

>Das ist zurzeit mein Code für den Arduino UNO.

Der wahrscheinlich nicht von dir geschrieben wurde.

>Alles klappt super so, will aber noch ne 2te Photodiode anschließen und
>weiß leider nicht, wie ich das machen soll :(

Weil du weder die Schaltung (Hardware) noch die Software verstanden 
hast?

Die Schaltung sieht recht akademisch aus. Der LTC1050 ist ein Nobel- 
Präzisions-OPV. Dessen Ausgang geht auf LTC2440, einen 24 Bit 
Sigma-Delta ADC. Der hat aber nur einen (differentiellen) Eingang, der 
hier aber als single ended genutzt wird.

Also musst du wohl den OPV als auch den ADC doppelt aufbauen und an 
deinen Arduino anschließen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.