INFORMACIÓN
El Sensor de Radiación Fotosintéticamente Activa (400-700nm) RS485 es un dispositivo que mide la cantidad de fotones útiles para la fotosíntesis (PAR) que recibe una superficie vegetal, permitiendo evaluar la eficiencia fotosintética y el estado de crecimiento de las plantas, lo que resulta clave para agricultura de precisión, invernaderos, y estudios científicos sobre el comportamiento de las plantas ante diferentes condiciones de luz. Este sensor se comunica mediante el protocolo estándar Modbus-RTU a través de RS485. Es compatible con placas como Arduino UNO R3 usando módulos adaptadores como el TTL a RS485. Su carcasa metálica de aluminio con nivel de protección IP67 lo hace resistente al polvo y al agua, lo que permite su uso en exteriores y condiciones adversas.
Este sensor se utiliza ampliamente en aplicaciones como el monitoreo del crecimiento de cultivos, sistemas fotovoltaicos, estudios de fisiología vegetal, meteorología agrícola y en la investigación ambiental y ecológica
ESPECIFICACIONES Y CARACTERÍSTICAS
- Voltaje de alimentación: DC 5–30V
- Corriente de trabajo: <10mA
- Modo de salida: RS485
- Rango de medición: 0–4000 µmol/m²•s
- Rango de longitud de onda: 400–700 nm
- Precisión: ±5% (a 1000 µmol/m²•s, @550 nm, 60% HR, 25°C)
- Resolución: 1 µmol/m²•s
- Tiempo de respuesta: 10 µs
- No linealidad: <±1%
- Estabilidad anual: ≤±2%
- Respuesta al coseno: ≤±10%
- Temperatura de trabajo: -25°C a +60°C
- Nivel de protección: IP67
- Longitud del cable del sensor: 20 cm
- Longitud del cable del adaptador: 70 cm
- Peso: 222 g
DOCUMENTACIÓN Y RECURSOS
INFORMACIÓN ADICIONAL
Para probar tu sensor te sugerimos realizar las siguientes conexiones y cargar el programa para obtener lecturas a través del monitor serie del Arduino IDE.
Para conectar tu sensor al Arduino uno o similares necesitas un adaptador RS485 a TTL, para ello da click aquí para adquirir uno o puedes usar el empleador por DFROBOT
<code class=" language-c">#include <SoftwareSerial.h> SoftwareSerial mySerial(2,3); uint8_t Com[8] = { 0x01, 0x03, 0x00, 0x00, 0x00, 0x01, 0x84, 0x0A }; int PAR; void setup() { Serial.begin(9600); mySerial.begin(4800); } void loop() { readPAR(); Serial.print("PAR = "); Serial.print(PAR); Serial.println(" umol/m²·s "); delay(1000); } void readPAR(void) { uint8_t Data[10] = { 0 }; uint8_t ch = 0; bool flag = 1; while (flag) { delay(100); mySerial.write(Com, 8); delay(100); if (readN(&ch, 1) == 1) { if (ch == 0x01) { Data[0] = ch; if (readN(&ch, 1) == 1) { if (ch == 0x03) { Data[1] = ch; if (readN(&ch, 1) == 1) { if (ch == 0x02) { Data[2] = ch; if (readN(&Data[3], 4) == 4) { if (CRC16_2(Data, 5) == (Data[5] * 256 + Data[6])) { PAR = Data[3] * 256 + Data[4]; flag = 0; } } } } } } } } mySerial.flush(); } } uint8_t readN(uint8_t *buf, size_t len) { size_t offset = 0, left = len; int16_t Tineout = 500; uint8_t *buffer = buf; long curr = millis(); while (left) { if (mySerial.available()) { buffer[offset] = mySerial.read(); offset++; left--; } if (millis() - curr > Tineout) { break; } } return offset; } unsigned int CRC16_2(unsigned char *buf, int len) { unsigned int crc = 0xFFFF; for (int pos = 0; pos < len; pos++) { crc ^= (unsigned int)buf[pos]; for (int i = 8; i != 0; i--) { if ((crc & 0x0001) != 0) { crc >>= 1; crc ^= 0xA001; } else { crc >>= 1; } } } crc = ((crc & 0x00ff) << 8) | ((crc & 0xff00) >> 8); return crc; }
⚠️NOTAS ⚠️
- El sensor es un dispositivo de precisión. Para evitar daños al producto, no lo desmonte durante su uso.
- Si el valor de lectura es 0, compruebe si hay una fuente de luz y si la cubierta protectora del producto está retirada.
- Si el bus 485 está desconectado o las líneas A y B están conectadas al revés, no tendrá lecturas
- Compruebe que la fuente de alimentación cumpla con las marcas de polaridad.
ENLACES EXTERNOS
Valoraciones
No hay valoraciones aún.