Bonjour, je suis à la recherche du connaisseur pour m'aider à comprendre et modifier un programme pour attiny13
Les fichiers on était récupéré à cette adresse :http://libstock.mikroe.com/projects/...13-and-ds18b20
J ai commander ceci pour la programmation
http://fr.aliexpress.com/item/USB-IS...967931731.html
http://fr.aliexpress.com/item/New-Pr...610451320.html
http://fr.aliexpress.com/item/Free-s...619910814.html
J'ai installé le logiciel Atmel studio, puis j'ai simplement ouvert le code .c je me retrouve donc avec ceci
Je souhaiterais avoir une broche qui lorsque la temperature et supérieur a une consigne max alors il permutte une broche de 0 a 5v ou de 5v a 0(possibilité de choisir le sens de consigne dans le code )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 Code: // Roman Toropov // Termostat char duty; unsigned int temp2write; void main() { DDB0_bit = 1; // duty = 0; PWM1_Init(_PWM1_FAST_MODE, _PWM1_PRESCALER_1, _PWM1_NON_INVERTED, 0); //--- Main loop do { //--- Perform temperature reading Ow_Reset(&PORTB, 2); // Onewire reset signal Ow_Write(&PORTB, 2, 0xCC); // Issue command SKIP_ROM Ow_Write(&PORTB, 2, 0x44); // Issue command CONVERT_T Delay_us(120); Ow_Reset(&PORTB, 2); Ow_Write(&PORTB, 2, 0xCC); // Issue command SKIP_ROM Ow_Write(&PORTB, 2, 0xBE); // Issue command READ_SCRATCHPAD temp2write = Ow_Read(&PORTB, 2); temp2write = (Ow_Read(&PORTB, 2) << 8) + temp2write; //--- Format and display result on Lcd // if (temp2write & 0x8000) { // text[0] = '-'; // temp2write = ~temp2write + 1; // } // Extract temp_whole temp2write = temp2write >> 4 ; // min duty 20 max 30 // if ((temp2write < 46) && (temp2write > 35)) { duty = (temp2write - 35) * 12; } if (temp2write > 37) { duty = (temp2write - 37) * 5 + 20; } if (temp2write > 45) { duty = 255; } if (temp2write < 38) { duty = 0; } PWM1_Set_Duty(duty); Delay_ms(3000); } while (1); }
pendant un temps donné en seconde mais également un seuil de temperature de réarmement
exemple délais 30 sec temperature 27
si les 30 seconde sont atteint mes que le temperature dépasse toujours 27 alors il recommence le délais
Cela et il possible ? Je precise que je n y connais rien et que je me lance dans l aventure .
Merci de votre comprehension et pour vos explication .
Partager