Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - kira

#1
 นำโค๊ดมาทดสอบ การส่งรับค่าArduino กับ HMI modbus ของ samkoon
รับส่งข้อมูล ได้ทั้ง analog และ digital แต่ติดปัญหาตรง เรื่องการส่งทศนิยม ไปยัง HMI ปรากฎว่าค่าไม่ขึ้น


//====== DHT =======
#include "DHT.h"
#define DHTPIN 4     // what digital pin we're connected to
#define DHTTYPE DHT11   // DHT 11
DHT dht(DHTPIN, DHTTYPE);
//-------DHT--------

//====== MODBUS =======
#include <modbus.h>
#include <modbusDevice.h>
#include <modbusRegBank.h>
#include <modbusSlave.h>

modbusDevice regBank;
//Create the modbus slave protocol handler
modbusSlave slave;
//-------MODBUS--------
int sensorPin = A0;
int sensorPin1 = A1;
float sensorValue = 0;  // variable to store the value coming from the sensor
const float sa  = 204.6;
int sensorValue1 = 0;
void setup() {
  // put your setup code here, to run once:
  pinMode (14,INPUT);
  pinMode (15,INPUT);
  pinMode (16,INPUT);
  pinMode (17,INPUT);
  pinMode (2,INPUT);

  pinMode (3,OUTPUT);
  pinMode (5,OUTPUT);
  pinMode (6,OUTPUT);
  pinMode (7,OUTPUT);
  pinMode (9,OUTPUT);
 
  //====== DHT =======
  dht.begin();
  //-------DHT--------
 
  //====== MODBUS =======
  //Assign the modbus device ID. 
  regBank.setId(1);
  //Add Digital Output registers 00001-00016 to the register bank
  regBank.add(1);
  regBank.add(2);
  regBank.add(3);
  regBank.add(4);
  regBank.add(5);
  //Add Digital Input registers 10001-10008 to the register bank
  regBank.add(10001); 
  regBank.add(10002);
  //Add Analog Output registers 40001-40020 to the register bank
  regBank.add(40001);
regBank.add(40002);
  regBank.add(40003);
  slave._device = &regBank; 
  // Initialize the serial port for coms at 9600 baud 
  slave.setBaud(9600);
  //-------MODBUS--------
}





void loop() {
    // put your main code here, to run repeatedly:
  //====== DHT =======
  // Read temperature as Celsius (the default)
  float t = dht.readTemperature();
  //-------DHT--------
 
 
  //====== INPUT ======
  if (digitalRead(14) == HIGH) // WATER LEVEL MAX
  {
    regBank.set(10001,1);   
  }
  else
  {
    regBank.set(10001,0);
  }
  if (digitalRead(15) == HIGH) // WATER LEVEL MAX
  {
    regBank.set(10002,1);   
  }
  else
  {
    regBank.set(10002,0);
  }
  //------- INPUT --------

  //====== OUTPUT ======

  if(regBank.get(1)== 0)
  {
    digitalWrite(3,LOW); 
  }
  else
  {
    digitalWrite(3,HIGH);
  }
  if(regBank.get(2)== 0)
  {
    digitalWrite(5,LOW); 
  }
  else
  {
    digitalWrite(5,HIGH);
  }
  if(regBank.get(3)== 0)
  {
    digitalWrite(6,LOW); 
  }
  else
  {
    digitalWrite(6,HIGH);
  }
  if(regBank.get(4)== 0)
  {
    digitalWrite(9,LOW); 
  }
  else
  {
    digitalWrite(9,HIGH);
  }
  if(regBank.get(5)== 0)
  {
    digitalWrite(7,LOW); 
  }
  else
  {
    digitalWrite(7,HIGH);
  }
  //------- OUTPUT --------
 
  sensorValue = analogRead(sensorPin);
         float Volt0 = sensorValue/sa;
  regBank.set(40002,Volt0);  ///=======>>> ค่าตัวนี้ไม่สามารถแสดงเป็นทศนิยมได้

    sensorValue1 = analogRead(sensorPin1);
  regBank.set(40003,sensorValue1);
 
  //====== MODBUS =======
  regBank.set(40001,t);
 
  slave.run();
  //-------MODBUS--------




 
}








#2
ตามหาคนหาย ใช้ชื่อในไลน์ ว่า Wizard

คือคุณจะเอายังไงกับผมกันแน่ครับ คุณเล่นเงียบมาข้ามปีแล้วนะครับ ผมรู้ว่าคุณสิง อยู่ในบอร์ดนี้ล่ะ คุณรับเงินมัดจำไปแล้ว2ใน3 แล้วคุณก็ทำงานผมพัง จนง่ายส่งช้า ผมโดนปรับ!!

แต่ผมติดต่อคุณไม่ได้เลย

ผมขอให้คุณโทรมาหาผม ภายในวันพรุ้งนี้ ไม่งั้นผมจะลงข้อมูล ตั้งแต่บ้านเลขที่
ที่อยู่ปัจจุบัน และชื่อจริง บัตรประชาชน เอามะนไปหาหลอกคนอื่นไม่ได้อีก
หากคุณเป็นลูกผู้ชาย โทรมาครับ
#3
คือผมไม่ค่อยเก่งสักเท่าไร

ถ้ามีบอร์ดไหนที่ใช้แล้วมีไกค์ เขียนเป็นตัวอย่าง
ช่วยแนะนำก้วยครับ ขอบคุณครับ
#4
ผออยากจะทำ data logger web server ครับ
ตอนนี้ ผมลองใช้ dspic 33websaver แต่มันไม่ได้บันทึกอะไรไว้ โชว์แค่ผ่านหน้าเว็บเฉยๆ

ถ้าผมจะเอาข้อมูลที่ส่งมาเป็น %22 %23 %24
ที่หน้าเว็บรับมาแสดงผล เอามาบันทึกลงในคอม หรือใน excel
ผมจะมีวิธีไหนได้บ้างครับ

ช่วยแนะนำตัวอย่างหรือเรื่องที่ผมต้องไปศึกษาเพิ่มหน่อยครับ
#5
สวัสดีครับ

ผมต้องการคนทำproject งานวงจรanalog
ประมา4-5วงจร ครับ

แอดไลน์มาคุย Id: kira0002

จะได้ส่งรูปให้
#6
สวัสดีครับ

   ผมอยากสอบถามเรื่อง Code ของการเพิ่มจำนวน อินพุต ADC
ซึ่ง ET-dsPIC33WEB จะมีตัวอย่างมาแค่ 1 อินพุต ADC คือ RB5

แต่ผมอยากจะให้มันรับได้สัก 4-6 อินพุต ต้องทำอย่างไรครับ
นี้Code ตัวอย่าง


// Read ADC Result
static void ProcessIO(void)
{
#ifdef __C30__
    uitoa((WORD)(ADC1BUF0*(3.3/4095)), AN0String); // Convert potentiometer result into ASCII string
#endif
}




// ADC Config
AD1CON1 = 0x84E4; // Turn on, auto sample start, auto-convert, 12 bit mode (on parts with a 12bit A/D)
AD1CON2 = 0x0404; // AVdd, AVss, int every 2 conversions, MUXA only, scan
AD1CON3 = 0x1003; // 16 Tad auto-sample, Tad = 3*Tcy
    AD1CHS = 0; // Input to AN0 (potentiometer)
AD1PCFGbits.PCFG4 = 0; // Disable digital input on AN5 (potentiometer)
AD1CSSL = 1<<4; // Scan pot




  ขอคำแนะนำด้วยครับ
ขอบคุณครับ

#7
ผมอยากได้ชุดส่งข้อมูล สัญญาณAnalog เพื่อส่งไปแสดงหน้าเว็บ
แต่อยากใช้ Sim มือถือแทน สายแลน ครับ

ไม่ทราบว่า ของ ETT มีไหมครับ หรือของเจ้าอื่นที่มีตัวอย่างการใช้งานครับ

เห็นมีแบบ DSpic 33 web แต่ตัวนี้มันต้องต่อกับrouter ผ่านสายแลน เพื่อทำเชอฟเวอร์
หากผมไม่ใช้router  แต่ให้ใช้อินเตอร์เน็ตผ่านSimเลย มีไหมครับ ของจีนสำเร็จรูปก็ได้ ครับ

ขอบคุณครับ
#8
ยังหาไม่ได้เลยครับ