အနုပညာ
အလှအပနှင့် ကျန်းမာရေး
လက်မှုအနုပညာ
ယဉ်ကျေးမှုနှင့် သမိုင်း
ဖျော်ဖြေရေး
ပတ်ဝန်းကျင်
အစားအစာနှင့် အချိုရည်
ပြောင်းပြန်အင်ဂျင်နီယာပညာ
သိပ္ပံပညာများ
အားကစား
နည်းပညာ
ဝတ်ဆင်နိုင်သောပစ္စည်းများ
The Charge-Coupled Device
Pixel

ဖန်တီးသူ

Pixel

29. သြဂုတ် 2026FI

The Charge-Coupled Device

Boyle and Smith, 1969, sketched in an hour on a blackboard; Nobel Prize 2009. A CCD pixel is the DRAM cell read the opposite way: DRAM holds charge and refreshes it in place, a CCD SHIFTS each packet down the row to one amplifier, a bucket brigade for electrons. Because it collects charge on a fixed grid instead of scanning a beam, it kills the vidicon's two diseases — distortion and lag — at a stroke. The price: move charge thousands of times and lose none.
အဆင့်မြင့်
6 hours

ညွှန်ကြားချက်များ

1

The pixel is the DRAM cell, read by moving the charge

The pixel is the DRAM cell. A gate over silicon makes a potential well; in DRAM you fill it to mean a 1, in a CCD light fills it with electrons. The difference is the whole invention: DRAM reads each cell in place (a wire and an amplifier per column); a CCD MOVES the charge, tipping each packet into the next well like water between buckets, to a single amplifier at the end. Almost no wires, but every packet is transferred thousands of times.

Tools needed:

Notebook and PencilNotebook and Pencil
2

The bucket brigade: how one image becomes one signal

Follow one photon to the output. Expose (each well fills like a bucket in the rain); clock the whole image DOWN row by row into a readout register; clock that register SIDEWAYS into one amplifier that weighs each packet in turn. One amplifier reads the entire image, so there is no pixel-to-pixel gain variation. The vidicon's distortion (no beam) and lag (wells fully cleared) are simply gone; the new failure modes are transfer loss and dark current.

Flow

Loading...

Tools needed:

Desktop ComputerDesktop Computer
3

Why astronomers freeze their sensors: dark current and transfer efficiency

Loading Jupyter Notebook...

Tools needed:

Desktop ComputerDesktop Computer
4

Measure real dark current against temperature

You cannot clock a bare CCD, but you can measure the physics that rules it — dark current rising exponentially with temperature — on any cheap photodiode. Read a reverse-biased diode's leakage in the dark at several temperatures; the slope of log(current) vs 1/T gives the doubling temperature, ~6-10 C, the same number that forces observatories to pour liquid nitrogen over their cameras.
ccd_darkcurrent.inocpp
// Dark current versus temperature — the physics behind why CCDs are cooled.
//
// A reverse-biased photodiode's leakage IS a dark current. Read it through a large load
// while logging temperature, warm the sensor gently in the dark, and the slope of
// log(current) vs 1/T gives the activation energy and the doubling temperature — the same
// characterisation an astronomy lab runs on a real CCD.
//
// Wiring
//   Photodiode: cathode -> 3V3, anode -> GPIO34 and -> 1M -> GND  (reverse bias; leakage
//               develops a small voltage across the 1M load)
//   DS18B20 temperature sensor -> GPIO4 with a 4k7 pull-up to 3V3
//   ALL inside a light-tight box. Dark current means DARK.

#include <OneWire.h>
#include <DallasTemperature.h>

const int PIN_DIODE = 34;      // ADC1
const int PIN_TEMP  = 4;
const float R_LOAD  = 1.0e6;   // ohm
const float VCC     = 3.3;

OneWire oneWire(PIN_TEMP);
DallasTemperature tempSensor(&oneWire);

float readDarkVolts() {
  const int N = 512;           // heavy averaging: the signal is tiny and the ADC is noisy
  uint32_t acc = 0;
  for (int i = 0; i < N; i++) { acc += analogRead(PIN_DIODE); delay(2); }
  return (float)acc / N * (VCC / 4095.0);
}

void setup() {
  Serial.begin(115200);
  delay(300);
  analogReadResolution(12);
  analogSetPinAttenuation(PIN_DIODE, ADC_11db);
  tempSensor.begin();

  Serial.println("# Dark current vs temperature");
  Serial.println("# Keep the box CLOSED. Warm the sensor slowly (a hand, a warm room).");
  Serial.println("# temp_C\tdark_V\tdark_current_nA\tinvT_1perK\tln_current");
}

void loop() {
  tempSensor.requestTemperatures();
  float T = tempSensor.getTempCByIndex(0);
  if (T < -100) { Serial.println("# temp sensor not found"); delay(1000); return; }

  float v = readDarkVolts();
  float i_nA = (v / R_LOAD) * 1e9;          // I = V / R, in nanoamps
  float invT = 1.0 / (T + 273.15);
  float lnI  = (i_nA > 0) ? log(i_nA) : 0;

  Serial.print(T, 2);    Serial.print('\t');
  Serial.print(v, 4);    Serial.print('\t');
  Serial.print(i_nA, 3); Serial.print('\t');
  Serial.print(invT, 6); Serial.print('\t');
  Serial.println(lnI, 3);

  // Log once every few seconds as the temperature drifts. Fit ln(I) vs 1/T offline:
  //   slope = -Ea/k ;  doubling temp dT = T^2 * k * ln(2) / Ea.
  delay(3000);
}

Materials for this step:

Photodiode (BPW34)Photodiode (BPW34)1 ခု
Resistor Kit (1/4W, E12 Series)Resistor Kit (1/4W, E12 Series)1 အစုံ

Tools needed:

ESP32 Development BoardESP32 Development Board
DS18B20 Temperature Sensor (Waterproof)DS18B20 Temperature Sensor (Waterproof)
BreadboardBreadboard

ပစ္စည်းများ

2

လိုအပ်သော ကိရိယာများ

5

ဆက်စပ် အစီအစဉ်များ

ဤအစီအစဉ်များသည် အသိပညာမျှဝေသည် — နည်းပညာ၊ ပစ္စည်း သို့မဟုတ် မူများ

CC0 အများပိုင်

ဤအစီအစဉ်ကို CC0 အောက်တွင် ထုတ်ဝေထားသည်။ ခွင့်ပြုချက်မလိုဘဲ ကူးယူ၊ ပြင်ဆင်၊ ဖြန့်ဝေ နှင့် အသုံးပြုနိုင်သည်။

အစီအစဉ်မှတစ်ဆင့် ကုန်ပစ္စည်းများဝယ်ယူ၍ ဖန်တီးသူကို ပံ့ပိုးပါ ဖန်တီးသူ ကော်မရှင် ရောင်းချသူက သတ်မှတ်သည်၊ သို့မဟုတ် ဤအစီအစဉ်၏ ဗားရှင်းအသစ်ဖန်တီး၍ ဝင်ငွေခွဲဝေရန် သင့်အစီအစဉ်တွင် ချိတ်ဆက်မှုအဖြစ် ထည့်သွင်းပါ။

ဆွေးနွေးချက်

(0)

ဝင်ရောက် ဆွေးနွေးချက်တွင် ပါဝင်ရန်

Loading comments...