Jump to content


  • Content Count

  • Joined

  • Last visited

  1. @spirilis thanks for this amazing library! I was able to communicate arduino and msp430g2553, but just in this case: TX: ARDUINO RX: MSP If i put msp like tx and arduino RX, it doesn't work... why? and my second question is: how the power mode works? when it enter in sleep mode? how much current it spends in each mode? Sorry for my english..
  2. @@Fmilburn thanks for your reply.. i will look it and post here my results. I'm new in MSP and Energia, so i commit some mistakes.
  3. this 2 codes that i have posted are correct.. (attached above) the ENFR code is to ENERGIA ide and it is working. the second code (water flow) is to ARDUINO IDE. i have to integrate this two codes to work in energia.. i tried in several ways, but none worked.
  4. @@KeithB yes, i am using energia, but it didnt solve my problem :/
  5. i tried integrate the codes, but i receive this error code: error: 'pulseCounter' was not declared in this scope In arduino i didn't have to declare this... here, is my code: #include <SPI.h> #include <Enrf24.h> #include <nRF24L01.h> byte statusLed = 13; byte sensorInterrupt = 0; // 0 = digital pin 2 byte sensorPin = 2; // The hall-effect flow sensor outputs approximately 4.5 pulses per second per // litre/minute of flow. float calibrationFactor = 4.5; volatile byte pulseCount; float flowRate; unsigned int flowMilliLitres; unsigned long totalMilliLitres; unsigned long oldTime; Enrf24 radio(P2_0, P2_1, P2_2); // P2.0=CE, P2.1=CSN, P2.2=IRQ const uint8_t txaddr[] = { 0xF0,0xF0,0xF0,0xF0,0xE1 }; boolean flag = 0; void dump_radio_status_to_serialport(uint8_t); void setup() { Serial.begin(9600); // Set up the status LED line as an output SPI.begin(); SPI.setDataMode(SPI_MODE0); SPI.setBitOrder(1); // MSB-first pinMode(statusLed, OUTPUT); digitalWrite(statusLed, HIGH); // We have an active-low LED attached pinMode(sensorPin, INPUT); digitalWrite(sensorPin, HIGH); pulseCount = 0; flowRate = 0.0; flowMilliLitres = 0; totalMilliLitres = 0; oldTime = 0; // The Hall-effect sensor is connected to pin 2 which uses interrupt 0. // Configured to trigger on a FALLING state change (transition from HIGH // state to LOW state) attachInterrupt(sensorInterrupt, pulseCounter, FALLING); radio.begin(); // Defaults 1Mbps, channel 0, max TX power //radio.setCRC(1,1); radio.setTXaddress((void*)txaddr); } void loop() { if((millis() - oldTime) > 1000) // Only process counters once per second { // Disable the interrupt while calculating flow rate and sending the value to // the host detachInterrupt(sensorInterrupt); // Because this loop may not complete in exactly 1 second intervals we calculate // the number of milliseconds that have passed since the last execution and use // that to scale the output. We also apply the calibrationFactor to scale the output // based on the number of pulses per second per units of measure (litres/minute in // this case) coming from the sensor. flowRate = ((1000.0 / (millis() - oldTime)) * pulseCount) / calibrationFactor; // Note the time this processing pass was executed. Note that because we've // disabled interrupts the millis() function won't actually be incrementing right // at this point, but it will still return the value it was set to just before // interrupts went away. oldTime = millis(); // Divide the flow rate in litres/minute by 60 to determine how many litres have // passed through the sensor in this 1 second interval, then multiply by 1000 to // convert to millilitres. flowMilliLitres = (flowRate / 60) * 1000; // Add the millilitres passed in this second to the cumulative total totalMilliLitres += flowMilliLitres; unsigned int frac; // Print the flow rate for this second in litres / minute radio.print("Flow rate: "); radio.print(int(flowRate)); // Print the integer part of the variable radio.print("L/min"); radio.print("\t"); // Print tab space // Print the cumulative total of litres flowed since starting radio.print("Output Liquid Quantity: "); radio.print(totalMilliLitres); radio.println("mL"); radio.print("\t"); // Print tab space radio.print(totalMilliLitres/1000); radio.print("L"); // Reset the pulse counter so we can start incrementing again pulseCount = 0; // Enable the interrupt again now that we've finished sending output attachInterrupt(sensorInterrupt, pulseCounter, FALLING); radio.flush(); // Force transmit (don't wait for any more data) } } } /* Insterrupt Service Routine */ void pulseCounter() { // Increment the pulse counter pulseCount++; } delay(1000); }
  6. Hi, everyone. First of all, sorry for my bad english hahaha I'm new in msp430 and energia, so i have a lot of doubts. I'm creating a water flow system, and i will use two nrf2401 module, a msp430, a rasp (central) and a water flow sensor. i have no idea how to integrate this. i have already installed NRF24 library, and now i need that the MSP430 read the sensor value and send this via RF to rasp. my doubt is in TX CODE I attached the original codes below. Now i need to integrate this two codes. Can anyone help me? huges I attached the original codes ENRF_-_TX_CODE.ino water_sensor.ino
  • Create New...