Hallo, hab hier ne Emitterschaltung, aber mir bringt die irgendwie nichts, da ich keine Basis-Emitter-Spannung von ca. 700mV bekomme, was mache ich falsch?
:
Verschoben durch Moderator
Gefährlich. Die 10k Potis durch 10k Festwiderstände ersetzen, sonst geht beim rumspielen evtl. sowohl Dein Transistor als auch Dein ARDUINO kaputt.
Hasiman schrieb: > Hallo, > > hab hier ne Emitterschaltung, aber mir bringt die irgendwie nichts, da > ich keine Basis-Emitter-Spannung von ca. 700mV bekomme, was mache ich > falsch? Du hast vergessen die Pin auf Output zu schalten. Ralf schrieb: > Die 10k Potis durch 10k Festwiderstände ersetzen Dem stimme ich zu. Alternativ: Den Basisstrom durch Angstwiderstände auf ein erträgliches Maß begrenzen. Bei den LEDs kannst du das ja auch...
Was hast Du denn zwischen Pin 2 oder 3 und GND gemessen? Dazu gehört natürlich noch ein bissel Software. Was machst Du denn softwareseitig, wenn Du auf keine 0,7V Ube kommst...?
Ich habe gerade gemerkt, dass ich vom Pin nur maximal 2,5 V bekomme :S... Hab den mal an 5V angeschlossen und dann erst komme ich auf meine Ube= 0,7 V ... @.@ Muss ich dann softwareseitig etwas ändern, hmm..
Hasiman schrieb: > Muss ich dann softwareseitig etwas ändern, hmm.. Auf welchen Wert sind denn diese Potis eingestellt? Warum hast du da denn überhaupt Potis drin?
Weil ich Signalverarbeitung (Fotodiode->OPV->ADC... usw.) mache und ich sehen will wie sich mein Signal verändert...
Hasiman schrieb: > Muss ich dann softwareseitig etwas ändern, hmm.. Überlesen? OK! Dann eben nochmal: Arduino F. schrieb: > Hasiman schrieb: >> Hallo, >> >> hab hier ne Emitterschaltung, aber mir bringt die irgendwie nichts, da >> ich keine Basis-Emitter-Spannung von ca. 700mV bekomme, was mache ich >> falsch? > Du hast vergessen die Pin auf Output zu schalten.
Hasiman schrieb: > was mache ich falsch? Du verwendest keine Versorgungssymbole (Vcc und GND) im Schaltplan. Arduino F. schrieb: >> Du hast vergessen die Pin auf Output zu schalten. Das macht der Druino doch selber, wenn man einen Pin als Ausgang definiert z.B. mit pinMode(ledPin, OUTPUT). Da wäre es jetzt schön, wenn man das Programm auch noch hätte, das dieses Verhalten an der Hardware hervorruft.
Beitrag #4989112 wurde von einem Moderator gelöscht.
1 | |
2 | int ledROT = 7; |
3 | |
4 | void setup() { |
5 | // put your setup code here, to run once:
|
6 | |
7 | pinMode(ledROT, OUTPUT); |
8 | |
9 | digitalWrite(ledROT, HIGH); |
10 | delayMicroseconds(220); |
11 | digitalWrite(ledROT, LOW); |
12 | delayMicroseconds(1780); |
13 | |
14 | }
|
15 | |
16 | Wenn ich diesen Code benutze, habe ich null Probleme mit der Spannung. |
17 | |
18 | Doch, wenn ich diesen Code benutze |
19 | [c] |
20 | /* ltc2440 <------------------------> Arduino
|
21 | * 11: CS to digital pin 10 (SS pin)
|
22 | * 7: SDI to digital pin 11 (MOSI pin)
|
23 | * 12: SDO to digital pin 12 (MISO pin)
|
24 | * 13: SCK to digital pin 13 (SCK pin)
|
25 | * 15: BUSY to digital pin 4
|
26 | * 14: f0 - ground
|
27 | * 10: EXT - ground
|
28 | * 1: GND - ground
|
29 | * 2: VCC - 5V supply
|
30 | */
|
31 | |
32 | |
33 | int i=0; |
34 | int LED; |
35 | #include <SPI.h> // include the SPI library |
36 | |
37 | // set I/O pins used in addition to clock, data in, data out
|
38 | const byte slaveSelectPin = 10; // digital pin 10 for /CS |
39 | #define DATAREADY 4
|
40 | |
41 | |
42 | void setup() { |
43 | // put your setup code here, to run once:
|
44 | |
45 | |
46 | pinMode (DATAREADY, INPUT); |
47 | pinMode (slaveSelectPin, OUTPUT); |
48 | digitalWrite(slaveSelectPin,HIGH); // chip select is active low |
49 | |
50 | SPI.begin(); // initialize SPI, covering MOSI,MISO,SCK signals |
51 | SPI.setBitOrder(MSBFIRST); // data is clocked in MSB first |
52 | SPI.setDataMode(SPI_MODE0); // SCLK idle low (CPOL=0), MOSI read on rising edge (CPHI=0) |
53 | SPI.setClockDivider(SPI_CLOCK_DIV2); // system clock = 16 MHz, chip max = 1 MHz |
54 | |
55 | |
56 | |
57 | |
58 | pinMode(5,OUTPUT); |
59 | pinMode(7,OUTPUT); |
60 | Serial.begin(250000); |
61 | |
62 | }
|
63 | |
64 | |
65 | |
66 | |
67 | //====================================
|
68 | //Main LOOP
|
69 | //====================================
|
70 | void loop() { |
71 | // put your main code here, to run repeatedly:
|
72 | double volts; |
73 | unsigned long in; // incoming serial 32-bit word |
74 | unsigned long sum = 0; |
75 | |
76 | int s=0; |
77 | |
78 | |
79 | |
80 | |
81 | |
82 | if (s==0) |
83 | {
|
84 | |
85 | |
86 | PORTD |= _BV(LED); |
87 | delay(5); |
88 | digitalWrite(slaveSelectPin,LOW); |
89 | digitalWrite(slaveSelectPin,HIGH); |
90 | if(digitalRead(DATAREADY)==LOW) |
91 | {
|
92 | in = SpiRead(); |
93 | in &= 0B00011111111111111111111111111111;//0x1FFFFFFF; // force high three bits to zero |
94 | in = in>>5; // move lowest 5 bits LSB |
95 | sum = in; |
96 | volts = sum *(0.0745058059);//Microvolts |
97 | Serial.println(volts); |
98 | PORTD &= ~_BV(LED); |
99 | |
100 | if(i==1){ |
101 | i=0; |
102 | }
|
103 | else i=1; |
104 | }
|
105 | |
106 | s=1; |
107 | |
108 | }
|
109 | |
110 | |
111 | if (s==1){ |
112 | |
113 | if(i==1){ |
114 | LED=5; //ir |
115 | digitalWrite(5, HIGH); |
116 | delayMicroseconds(1000); |
117 | digitalWrite(5, LOW); |
118 | delayMicroseconds(25); |
119 | }
|
120 | else LED=7; //rot |
121 | digitalWrite(7, HIGH); |
122 | delayMicroseconds(1000); |
123 | digitalWrite(7, LOW); |
124 | delayMicroseconds(25); |
125 | s=0; |
126 | }
|
127 | |
128 | |
129 | |
130 | |
131 | |
132 | |
133 | }
|
134 | |
135 | |
136 | // =================================================================
|
137 | // SpiRead() -- read out 4 bytes from LTC2440 chip via SPI interface
|
138 | // =================================================================
|
139 | |
140 | unsigned long SpiRead(void) { |
141 | |
142 | unsigned long result = 0; |
143 | unsigned long b; |
144 | |
145 | |
146 | digitalWrite(slaveSelectPin,LOW); // take the SS pin low to select the chip |
147 | |
148 | b = SPI.transfer(0x28); // B3 |
149 | result = b<<8; |
150 | b = SPI.transfer(0); // B2 |
151 | result |= b; |
152 | result = result<<8; |
153 | b = SPI.transfer(0); // B1 |
154 | result |= b; |
155 | result = result<<8; |
156 | b = SPI.transfer(0); // B0 |
157 | result |= b; |
158 | |
159 | // take the SS pin high to de-select the chip:
|
160 | digitalWrite(slaveSelectPin,HIGH); |
161 | |
162 | return(result);//} |
163 | }
|
sinkt die Spannung extrem (Spannung gemessen an der LED = 2,08V mit dem ersten simplen Code. Mit dem Code, der ne Verbindung zum ADC ltc2440 hat, bekomme ich an der LED = 0,9V und die Basis-Emitter Spannung sinkt auf 0,3V ...(???)) Wie kann ich den Code soweit ändern, dass ich diesen Spannungsabfall nicht bekomme?
1 | if (s==1){ |
2 | |
3 | if(i==1){ |
4 | LED=5; //ir |
5 | digitalWrite(5, HIGH); |
6 | delayMicroseconds(1000); |
7 | digitalWrite(5, LOW); |
8 | delayMicroseconds(25); |
9 | }
|
10 | else LED=7; //rot |
11 | digitalWrite(7, HIGH); |
12 | delayMicroseconds(1000); |
13 | digitalWrite(7, LOW); |
14 | delayMicroseconds(25); |
15 | s=0; |
16 | }
|
Es hat etwas mit diesem Teil zu tun... Wenn ich den IR-Teil weglasse, bekomme ich 2,08V an der LED. Aber brauche diesen IR-Teil, wie mache ich das ohne Spannungsabfall
Hast Du die Spannung auch mit einem Oszilloskop gemessen? Wenn Du ein Multimeter benutzt siehst Du den Mittelwert. Und abhängig vom Timing, mit dem Du den Portpin ein- und ausschaltest, ergibt sich eine unterschiedliche Spannung (Dein Programm habe ich mir hierzu jetzt aber nicht genauer angeschaut). Zum Testen mit einem Multimeter solltest Du also nicht schneller als im Raster von einigen Sekunden ein- und ausschalten.
Hasiman schrieb: > Es hat etwas mit diesem Teil zu tun... nach dem
1 | else
|
möchtest du vermutlich eine "Klammer auf".
Dietrich L. schrieb: > Hast Du die Spannung auch mit einem Oszilloskop gemessen? > > Wenn Du ein Multimeter benutzt siehst Du den Mittelwert. Und abhängig > vom Timing, mit dem Du den Portpin ein- und ausschaltest, ergibt sich > eine unterschiedliche Spannung (Dein Programm habe ich mir hierzu jetzt > aber nicht genauer angeschaut). > > Zum Testen mit einem Multimeter solltest Du also nicht schneller als im > Raster von einigen Sekunden ein- und ausschalten. Hab leider kein Oszi zu Hand ^^ Mitlesa schrieb: > Hasiman schrieb: >> Es hat etwas mit diesem Teil zu tun... > > nach demelse möchtest du vermutlich eine "Klammer auf". oh danke :)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.