const int TransmitterDataPin = A5; //Connect A5 to data on RF transmitter module const int DoorbellSensorPin = A4; //Connect A4 to the doorbell current sensor data pin float DoorbellSensorValue = 0; //Raw value from doorbell current sensor float DoorbellSensorVolt = 0; //Raw value from doorbell current sensor converted into a voltage void setup() { Serial.begin(9600); pinMode(DoorbellSensorPin, INPUT); //Reading value of voltage on doorbell wire pinMode(TransmitterDataPin, OUTPUT); //Writing value going into Tx Data pin to be sent to Rx Data pin } void RfPwmTransmit(int p, int t) //Function to create a PWM with amplitude p and off time t for RF transmission { analogWrite(TransmitterDataPin, p); delay(t); } void loop() { DoorbellSensorValue = analogRead(DoorbellSensorPin); //Read raw value of doorbell current sensor DoorbellSensorVolt = DoorbellSensorValue * 5 / 1023; //Convert raw value of doorbell current sensor into a voltage Serial.print(DoorbellSensorVolt); Serial.print("\n"); if (DoorbellSensorVolt < 2.42 || DoorbellSensorVolt >= 2.55) { Serial.print("SHORT "); RfPwmTransmit(255, 100); RfPwmTransmit(0,100); } else //long burst { Serial.print("LONG "); RfPwmTransmit(150, 200); RfPwmTransmit(0,200); } }